make builder.envelope an object
rename compile to build