started generalizing test framework for multiple types