slightly refactored SegmentGuarantor