file structure refactored