working on block iterator imp