refactored src heirarchy