Finish pattern matcher
diff --git a/VarContext.cpp b/VarContext.cpp
index bde30ef..031ec42 100644
--- a/VarContext.cpp
+++ b/VarContext.cpp
@@ -1,17 +1,25 @@
 #include "VarContext.h"
 
-void VarContext::add(char t, const QString &&name, const Token &value) {
+void VarContext::add(char t, const QString &name, const Token &value) {
     _vars.insert(name, Var{t, value});
 }
 
 char VarContext::exists(const QString &name) {
-    return _vars.contains(name);
+    return _vars.contains(name) ? _vars[name].t : 0;
 }
 
-Token VarContext::operator[](const QString &name) {
+Token VarContext::singleVar(const QString &name) {
     return _vars[name].value;
 }
 
 VarContext::VarContext(const VarContext &other) noexcept {
     _vars = other._vars;
 }
+
+void VarContext::add(char t, const QString &name, const QList<Token> &value) {
+    _vars.insert(name,Var{t,{},value});
+}
+
+QList<Token> VarContext::expressionVar(const QString &name) {
+    return _vars[name].expressionValue;
+}