add basic tests and test infrastructure