Hardcore refactoring pt. 1