public Configuration copyUpdating(InputStream newSettings) {
        try {
            // Make a copy
            JsonNode copiedTree = yamlMapper.valueToTree(this).deepCopy();
            JsonNode newSettingsTree = yamlMapper.readTree(newSettings);
            mergeJsonNodes(copiedTree, newSettingsTree);
            return yamlMapper.treeToValue(copiedTree, Configuration.class);
        } catch (IOException e) {
            throw new RuntimeException("Failed to create new configuration.", e);
        }
    }
Makes a copy of this configuration object and replaces the configurations present in the
parameter in the newly created configuration copy.
ache/src/main/java/achecrawler/config/Configuration.java