move drag_and_drop functional to model