add pipeLoop func