Refactoring DropController / Drop #164

Please merge #170  first