add requirements and to-do