explanation for run and get_distance