refactored project hierarchy