Refactored, updated file structure