renamed and split advance method.