add comments
change benchmark to use PassThrough.push