add an optional identifier to memoize