refactored dragdropper a bit