project struture refactoring