use mixins as a more general way of letting a cursor inject members into an iterator