re-added drag and drop install
also separated the install() function into two parts so that code doesn't double up for drop()
also separated the install() function into two parts so that code doesn't double up for drop()
This will create a new commit in order to revert the existing changes.