https://blog.repithwin.com/simple-state-management-in-javascript-with-nanny-state/