I don't really like having all this logic in Game. That's how it was prior to the refactor, and I found it quite messy. Ideally, calling g.world.AddEntity() should add the entity to the world, and ensure all the correct messages are sent out, automatically.