first iteration, needs more work. see todolist