That sounds reasonable you would just have to pass more variables around or make different update functions for each type of projectile.