changes:refactor the project