Hard refactor