Refactored Drag and Drop Factory into a Directive