progress on iterate. supports positive shifts