decoupling text summary generation from printing