add the ability to yield objects