custom drag code now lives in a separate control