drag and drop, baby!

hope code is understandable and clean, any suggestions on how to improve it are welcome