output is mandatory, cannot write to stdout