higher order as first class ;-)