proper iteration on primitive blocks