Parameterise Approver (through introduction of BaseApprover<T>) to rid us of generics warnings.
Other tidying