refactored project directory setup