For getAll(), only get stuff we haven't seen before
Recursive step should call same function