refactored ComplianceReason, added StatusReasonMessageGenerator to help build messages