simplfy by buffering results of child processes