add store wrapper, memoized by thread