Refactored to use the move object for piece movement