added projectile preloading, minor refactoring