fight refactored