make drag class more generic