Feature/top level tests

This is just the framework. It needs to be updated with actual tests.