implement drag and drop view