Updated the project structure and added test cases