all the tests passing with corrections