abstract projectile and allow launching multiple