simplify the run command, add a callback argument to IP