reorganising code to make it easier to add new reports