skip memoize in lazy, might be its own test
chain vs compose