updates to defer() code and other bumpf