read from input and produce output