pulled the drop handler out of common client