"next rank" functions