refactored data layer project structure