diff --git a/CMakeLists.txt b/CMakeLists.txt
index 79dd345..ccf0aeb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -110,6 +110,7 @@
 
 add_library(yangschema STATIC
     src/yang_schema.cpp
+    src/libyang_utils.cpp
     )
 target_link_libraries(yangschema schemas ${LIBYANG_LIBRARIES})
 # Ensure that this doesn't override Boost's -isystem -- see the log for details.
diff --git a/src/libyang_utils.cpp b/src/libyang_utils.cpp
new file mode 100644
index 0000000..0885c64
--- /dev/null
+++ b/src/libyang_utils.cpp
@@ -0,0 +1,32 @@
+#include "libyang_utils.hpp"
+
+leaf_data_ leafValueFromValue(const libyang::S_Value& value, LY_DATA_TYPE type)
+{
+    using namespace std::string_literals;
+    switch (type) {
+    case LY_TYPE_INT8:
+        return value->int8();
+    case LY_TYPE_INT16:
+        return value->int16();
+    case LY_TYPE_INT32:
+        return value->int32();
+    case LY_TYPE_INT64:
+        return value->int64();
+    case LY_TYPE_UINT8:
+        return value->uint8();
+    case LY_TYPE_UINT16:
+        return value->uint16();
+    case LY_TYPE_UINT32:
+        return value->uintu32();
+    case LY_TYPE_UINT64:
+        return value->uint64();
+    case LY_TYPE_BOOL:
+        return bool(value->bln());
+    case LY_TYPE_STRING:
+        return std::string(value->string());
+    case LY_TYPE_ENUM:
+        return enum_{std::string(value->enm()->name())};
+    default: // TODO: implement all types
+        return "(can't print)"s;
+    }
+}
diff --git a/src/libyang_utils.hpp b/src/libyang_utils.hpp
new file mode 100644
index 0000000..42b6198
--- /dev/null
+++ b/src/libyang_utils.hpp
@@ -0,0 +1,11 @@
+/*
+ * Copyright (C) 2020 CESNET, https://photonics.cesnet.cz/
+ *
+ * Written by Václav Kubernát <kubernat@cesnet.cz>
+ *
+*/
+
+#include <libyang/Tree_Data.hpp>
+#include "ast_values.hpp"
+
+leaf_data_ leafValueFromValue(const libyang::S_Value& value, LY_DATA_TYPE type);
diff --git a/src/netconf_access.cpp b/src/netconf_access.cpp
index 4f4a923..5b1ad78 100644
--- a/src/netconf_access.cpp
+++ b/src/netconf_access.cpp
@@ -7,42 +7,12 @@
 
 #include <libyang/Libyang.hpp>
 #include <libyang/Tree_Data.hpp>
+#include "libyang_utils.hpp"
 #include "netconf-client.h"
 #include "netconf_access.hpp"
 #include "utils.hpp"
 #include "yang_schema.hpp"
 
-leaf_data_ leafValueFromValue(const libyang::S_Value& value, LY_DATA_TYPE type)
-{
-    using namespace std::string_literals;
-    switch (type) {
-    case LY_TYPE_INT8:
-        return value->int8();
-    case LY_TYPE_INT16:
-        return value->int16();
-    case LY_TYPE_INT32:
-        return value->int32();
-    case LY_TYPE_INT64:
-        return value->int64();
-    case LY_TYPE_UINT8:
-        return value->uint8();
-    case LY_TYPE_UINT16:
-        return value->uint16();
-    case LY_TYPE_UINT32:
-        return value->uintu32();
-    case LY_TYPE_UINT64:
-        return value->uint64();
-    case LY_TYPE_BOOL:
-        return bool(value->bln());
-    case LY_TYPE_STRING:
-        return std::string(value->string());
-    case LY_TYPE_ENUM:
-        return enum_{std::string(value->enm()->name())};
-    default: // TODO: implement all types
-        return "(can't print)"s;
-    }
-}
-
 NetconfAccess::~NetconfAccess() = default;
 
 std::map<std::string, leaf_data_> NetconfAccess::getItems(const std::string& path)
