The bullet is being loaded after the gun constructor was already called. BulletPrototype can only be constructed once the bullet is loaded.