run programs from a callback