improved try_higher_order