project hierarchy refactored