more tests, cleaning up the code a bit