basic functionality with tests
cleanup