refactored directory layout