moved test framework to separate file