diff --git a/CMakeLists.txt b/CMakeLists.txt
index baec077..4b2f0bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -111,6 +111,12 @@
 
 target_link_libraries(netconfaccess PUBLIC datastoreaccess yangschema ast_values utils PRIVATE PkgConfig::LIBNETCONF2)
 
+add_library(yangaccess STATIC
+    src/yang_access.cpp
+    )
+
+target_link_libraries(yangaccess PUBLIC datastoreaccess yangschema)
+
 add_library(yangschema STATIC
     src/yang_schema.cpp
     src/libyang_utils.cpp
@@ -127,15 +133,28 @@
     )
 target_link_libraries(parser schemas utils ast_values)
 
+# Links libraries, that aren't specific to a datastore type
+function(cli_link_required cli_target)
+    target_include_directories(${cli_target} PRIVATE ${REPLXX_PATH})
+    target_link_libraries(${cli_target} yangschema docopt parser ${REPLXX_LIBRARY})
+    add_dependencies(${cli_target} target-NETCONF_CLI_VERSION)
+    target_include_directories(${cli_target} PRIVATE ${PROJECT_BINARY_DIR})
+endfunction()
+
 add_executable(sysrepo-cli
     src/cli.cpp
     )
 target_compile_definitions(sysrepo-cli PRIVATE SYSREPO_CLI)
-target_include_directories(sysrepo-cli PRIVATE ${REPLXX_PATH})
-target_link_libraries(sysrepo-cli sysrepoaccess yangschema docopt parser ${REPLXX_LIBRARY})
+target_link_libraries(sysrepo-cli sysrepoaccess)
+cli_link_required(sysrepo-cli)
 
-add_dependencies(sysrepo-cli target-NETCONF_CLI_VERSION)
-target_include_directories(sysrepo-cli PRIVATE ${PROJECT_BINARY_DIR})
+add_executable(yang-cli
+    src/cli.cpp
+    )
+target_compile_definitions(yang-cli PRIVATE YANG_CLI)
+cli_link_required(yang-cli)
+target_link_libraries(yang-cli yangaccess)
+
 
 include(CTest)
 if(BUILD_TESTING)
@@ -201,6 +220,7 @@
     set(NETOPEER_SOCKET_PATH "${CMAKE_CURRENT_BINARY_DIR}/netopeer2-server.sock")
     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/start_daemons.sh.in ${CMAKE_CURRENT_BINARY_DIR}/start_daemons.sh @ONLY)
     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/netopeer_vars.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/netopeer_vars.hpp @ONLY)
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/yang_access_test_vars.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/yang_access_test_vars.hpp @ONLY)
 
     function(setup_datastore_tests)
         add_test(NAME setup_netopeer COMMAND ${SYSREPOCFG_EXECUTABLE} ietf-netconf-server -i ${CMAKE_CURRENT_SOURCE_DIR}/tests/netopeer-test-config.xml --datastore=startup --format=xml)
@@ -246,6 +266,8 @@
             target_link_libraries(${TESTNAME} sysrepoaccess)
         elseif (${backend} STREQUAL "netconf")
             target_link_libraries(${TESTNAME} netconfaccess)
+        elseif (${backend} STREQUAL "yang")
+            target_link_libraries(${TESTNAME} yangaccess)
         else()
             message(FATAL_ERROR "Unknown backend ${backend}")
         endif()
@@ -257,6 +279,7 @@
     function(datastore_test name model)
         datastore_test_impl(${name} ${model} sysrepo)
         datastore_test_impl(${name} ${model} netconf)
+        datastore_test_impl(${name} ${model} yang)
     endfunction()
 
     cli_test(cd)
