Abstract the initial catchup into its own function. Make sure we call check_neighbours beforehand, since that sets left and right.