add EnvironmentDetector