refactors bisectional movement