Well, if I were doing this, I'd probably refactor
moveDir into two concepts:
advance and
retreat
That is, I'd probably have something like this:
On seeing that,
you should recognize a responsibility that needs to be moved. I would then refactor to something like:
Something like that.