implemented ReportQuery structure and methods to take a query object rather than json string