added drag and drop support