add read from pipe