refactored report generation and export functionality out of the controller and into a separate "exporter" component.