changed project structure and added new test cases