functional to-do implementation