functioning but ugly todo list