Surprisingly pain free refactor of the Move class to build the words more pleasantly... Almost makes me wonder if I'm missing something in my test coverage =p