refactor projectile lifetimes