Refactored Projectile