fully functioning, but ugly todo list