diff --git a/src/main.cpp b/src/main.cpp
index 607115e..c40f2ae 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -10,9 +10,9 @@
 #include <docopt.h>
 #include <iostream>
 #include <string>
-#include "CParser.hpp"
-#include "CTree.hpp"
 #include "NETCONF_CLI_VERSION.h"
+#include "parser.hpp"
+#include "schema.hpp"
 
 
 static const char usage[] =
@@ -28,16 +28,16 @@
 namespace ascii = boost::spirit::x3::ascii;
 
 using Cmd = std::vector<std::string>;
-using x3::alpha;
-using x3::lit;
-using x3::char_;
-using x3::_attr;
-using x3::lexeme;
 using ascii::space;
+using x3::_attr;
+using x3::alpha;
+using x3::char_;
+using x3::lexeme;
+using x3::lit;
 
-void interpret(cd_ command, CParser& tree)
+void interpret(cd_ command, Parser& parser)
 {
-    tree.changeNode(command.m_path);
+    parser.changeNode(command.m_path);
 }
 
 int main(int argc, char* argv[])
@@ -49,17 +49,17 @@
                                true);
     std::cout << "Welcome to netconf-cli" << std::endl;
 
-    CTree tree;
-    tree.addContainer("", "a");
-    tree.addContainer("", "b");
-    tree.addContainer("a", "a2");
-    tree.addContainer("b", "b2");
-    tree.addContainer("a/a2", "a3");
-    tree.addContainer("b/b2", "b3");
-    tree.addList("", "list", {"number"});
-    tree.addContainer("list", "contInList");
-    tree.addList("", "twoKeyList", {"number", "name"});
-    CParser parser(tree);
+    Schema schema;
+    schema.addContainer("", "a");
+    schema.addContainer("", "b");
+    schema.addContainer("a", "a2");
+    schema.addContainer("b", "b2");
+    schema.addContainer("a/a2", "a3");
+    schema.addContainer("b/b2", "b3");
+    schema.addList("", "list", {"number"});
+    schema.addContainer("list", "contInList");
+    schema.addList("", "twoKeyList", {"number", "name"});
+    Parser parser(schema);
 
     while (true) {
         std::cout << parser.currentNode() << ">";
