refactored DnD interface