now using a cache map to read nodes into memory