changed extension arguments to a single hash called ExtensionEnvironment