Envelope is now struct to reduce GC pressure