added test framework