add requirements
first implementation