It seems unnecessary to pass the signature to TextBodyBuilder unless we're also going to use it. My suggestion is to remove it from the constructor and add a method setSignature().