Project structure
refactored code