Thing to consider of the look choice, see What on earth is the benefit of owning this/self pointer mandatory explicit?. In this case I would like to be able to return two factors (a tuple?) within the iterator. It remains not crystal clear the best way to implement these types https://accessory-boxes02334.blogs100.com/37864348/the-2-minute-rule-for-accessory-boxes