add higher order procedure.