add canFire()