code: function (from, options, callback) {
  
  		var win = syn.helpers.getWindow(from);
  		var sourceCoordinates = convertOption(options.from || from, win, from);
  		var destinationCoordinates = convertOption(options.to || options, win, from);
  
  		if (options.adjust !== false) {
  			adjust(sourceCoordinates, destinationCoordinates, win);
  		}
  		
  		DragonDrop.html5drag = from.draggable;
  
  		if(DragonDrop.html5drag){
  			DragonDrop.dragAndDrop(win, sourceCoordinates, destinationCoordinates, options.duration || 500, callback);
  		}else{
  			startDrag(win, sourceCoordinates, destinationCoordinates, options.duration || 500, callback);
  		}
  	}
docs: @function syn.drag drag()
  @parent mouse
  @signature `syn.drag(from, options, callback)`
  Creates a mousedown and drags from one point to another.
  Check out [syn.prototype.move move] for API details.
  
  @param {HTMLElement} from
  @param {Object} options
  @param {Object} callback