implement rao.cache for rao