iterative levelling