UniversalMove refactoring