tricksy reverse iteration!