add Envelope interface