total refactoring ov movement logic