Half refactor