implement rudimentary drag and drop