Refactor motions to support multiple cursors

:warning: WIP :warning: