removed isValidAttack since it is redundant