A todo list using only native JS, utilising the observer design pattern