Refactored Drag and Drop factory into a Directive