Add some tests & a bit of a test framework