add tests
clean up