- Change ContractType property to use Constants.ContractType enum for improved type safety. - Move EnvelopeType selection to a shared module-level variable for consistent access. - Allow user selection of contract type when creating envelopes. - Refine envelope validation to check for required elements per receiver, with improved error messages.