implemented drag and drop directives