added more tests and refactored the test classes