this could be improved by just writing return makeWorldObject<WorldObject>()