Battle refactor