make drop more generic