implement output reader