class YamlConfiguration implements ExtensibleConfiguration<YamlConfiguration> {

    @Override
    public <T> Optional<T> get(String property, Class<T> tClass) {
        return nodeAt(property)
                .map(node -> {
                    if (tClass == Path.class) {
                        return (T) Paths.get(node.textValue());
                    }

                    return parseNodeToClass(node, tClass);
                });
    }

    public  YamlConfiguration(JsonNode rootNode);

}