impl attack()