Extract reporting to non-persistent report model, scheduleReportWriter helper and schedule report manager; mvc pattern for reports