Abstract classes to manage report generation