add some tests and infrastructure for further tests