refactored enemy