class DefaultScopedConfig implements ScopedConfig {

    public static DefaultScopedConfig newInstance(final Config originalConfig, final String configPath) {
        if (originalConfig instanceof ScopedConfig) {
            return newInstance((ScopedConfig) originalConfig, configPath);
        }

        validateArgument(originalConfig, "original Config");
        validateConfigPath(configPath);

        return new DefaultScopedConfig(tryToGetAsConfig(originalConfig, configPath), configPath);
    }

    private  DefaultScopedConfig(final Config theConfig, final String theConfigPath);

}