refactored dir structure