all tests implemented