change NodeCache to NodeReader