optional lazyness through iterators; incomplete POC