moved defend method to base class