Initial upload
intersect -> intersection
docstring for memoize