add IEnvironment interface and EnvironmentProxy implementation