diff --git a/src/sysrepo_access.cpp b/src/sysrepo_access.cpp
index d80f539..27ddba2 100644
--- a/src/sysrepo_access.cpp
+++ b/src/sysrepo_access.cpp
@@ -6,11 +6,11 @@
  *
 */
 
-#include <sysrepo-cpp/Session.h>
+#include <sysrepo-cpp/Session.hpp>
 #include "sysrepo_access.hpp"
 #include "yang_schema.hpp"
 
-leaf_data_ leafValueFromVal(const S_Val& value)
+leaf_data_ leafValueFromVal(const sysrepo::S_Val& value)
 {
     using namespace std::string_literals;
     switch (value->type()) {
@@ -37,45 +37,45 @@
     }
 }
 
-struct valFromValue : boost::static_visitor<S_Val> {
-    S_Val operator()(const enum_& value) const
+struct valFromValue : boost::static_visitor<sysrepo::S_Val> {
+    sysrepo::S_Val operator()(const enum_& value) const
     {
-        return std::make_shared<Val>(value.m_value.c_str(), SR_ENUM_T);
+        return std::make_shared<sysrepo::Val>(value.m_value.c_str(), SR_ENUM_T);
     }
 
-    S_Val operator()(const std::string& value) const
+    sysrepo::S_Val operator()(const std::string& value) const
     {
-        return std::make_shared<Val>(value.c_str());
+        return std::make_shared<sysrepo::Val>(value.c_str());
     }
 
-    S_Val operator()(const uint32_t& value) const
+    sysrepo::S_Val operator()(const uint32_t& value) const
     {
-        return std::make_shared<Val>(value, SR_UINT32_T);
+        return std::make_shared<sysrepo::Val>(value, SR_UINT32_T);
     }
 
-    S_Val operator()(const int32_t& value) const
+    sysrepo::S_Val operator()(const int32_t& value) const
     {
-        return std::make_shared<Val>(value, SR_INT32_T);
+        return std::make_shared<sysrepo::Val>(value, SR_INT32_T);
     }
 
-    S_Val operator()(const bool& value) const
+    sysrepo::S_Val operator()(const bool& value) const
     {
-        return std::make_shared<Val>(value, SR_BOOL_T);
+        return std::make_shared<sysrepo::Val>(value, SR_BOOL_T);
     }
 
-    S_Val operator()(const double& value) const
+    sysrepo::S_Val operator()(const double& value) const
     {
-        return std::make_shared<Val>(value);
+        return std::make_shared<sysrepo::Val>(value);
     }
 };
 
 SysrepoAccess::~SysrepoAccess() = default;
 
 SysrepoAccess::SysrepoAccess(const std::string& appname)
-    : m_connection(new Connection(appname.c_str()))
+    : m_connection(new sysrepo::Connection(appname.c_str()))
     , m_schema(new YangSchema())
 {
-    m_session = std::make_shared<Session>(m_connection);
+    m_session = std::make_shared<sysrepo::Session>(m_connection);
     m_schema->registerModuleCallback([this](const char* moduleName, const char* revision, const char* submodule) {
         return fetchSchema(moduleName, revision, submodule);
     });
diff --git a/src/sysrepo_access.hpp b/src/sysrepo_access.hpp
index 1ca813d..fb1f713 100644
--- a/src/sysrepo_access.hpp
+++ b/src/sysrepo_access.hpp
@@ -16,8 +16,11 @@
  *     \brief Abstract class for accessing a datastore
  */
 
+namespace sysrepo {
 class Connection;
 class Session;
+}
+
 class Schema;
 class YangSchema;
 
@@ -37,7 +40,7 @@
     std::shared_ptr<Schema> schema();
 
 private:
-    std::shared_ptr<Connection> m_connection;
-    std::shared_ptr<Session> m_session;
+    std::shared_ptr<sysrepo::Connection> m_connection;
+    std::shared_ptr<sysrepo::Session> m_session;
     std::shared_ptr<YangSchema> m_schema;
 };
diff --git a/submodules/libyang b/submodules/libyang
index b9c346b..6341aea 160000
--- a/submodules/libyang
+++ b/submodules/libyang
@@ -1 +1 @@
-Subproject commit b9c346bb1d5eb3b400398a862eed251138222a43
+Subproject commit 6341aeaeacde15eedccd2a52b04886a329527cdc
diff --git a/submodules/sysrepo b/submodules/sysrepo
index 5e7652c..f84bb42 160000
--- a/submodules/sysrepo
+++ b/submodules/sysrepo
@@ -1 +1 @@
-Subproject commit 5e7652c20ed2c02bfac53ad3355fa825bc92ab90
+Subproject commit f84bb42ff3a3f3290c45dc0bac2d35559dab2d28
