Separating output and diagnostics