add iterator deplete method