refactored the FormatListener and FormatNegotiator to allow configuration