add tests
add requirements