refactoring, drag and drop diretive