get some basic tests working
add a bunch more tests