refactored the project and repository