drag and drop functionality done, need to refactor