added requirement and TODO list