add TODO list and review code organization