implement text output, again