query sets are lazily evaluated so i don't think the memoization here does anything