add tests
cleanup