abstracted an 'updatePosition' method to share between the different moves, plus played around with some posibilities as to how to solve the void filling problem