refactor and enemies