changed world to use CachedVariable for blocks