enemy refactor