Use a movement object to support complex edits

For the time being, only for the basic movements.