redone: improved efficiency through caching