added drag-and-drop support