#15 Generator-based traversal
#15 User traversal code
Close #15: Tests, return as list instead of cache