Updated project structure and refactored