refactoring structure
more restructuring