Refactoring and a more complete version of the DragSpinner