iterate over corners instead, speeding up failure if one couldn't be found