refactored structure
merged structure refactor to master