diff --git a/.gitignore b/.gitignore
index 2892543..0754dce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
 build
 .cache
 compile_commands.json
+build-*
diff --git a/AstNode.h b/AstNode.h
index 1cf66d4..6ab397c 100644
--- a/AstNode.h
+++ b/AstNode.h
@@ -5,7 +5,7 @@
 class AstNode : public TokenBase<AstNode>
 {
 public:
-    using TokenBase::TokenBase;
+    using TokenBase<AstNode>::TokenBase;
 
     AstNode(QString function, QList<AstNode> args);
 
diff --git a/REFAL.pro b/REFAL.pro
index 320dc5b..8726fb9 100644
--- a/REFAL.pro
+++ b/REFAL.pro
@@ -15,7 +15,6 @@
 	Parser.cpp \
         PPrint.cpp \
 	StdLib.cpp \
-	Token.cpp \
 	VarContext.cpp
 
 HEADERS += \
diff --git a/Token.cpp b/Token.cpp
deleted file mode 100644
index 53ba43a..0000000
--- a/Token.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-#include "Token.h"
-#include "AstNode.h"
-
-#include <QDebug>
-
-template class TokenBase<Token>;
-
-// This is kind of ugly and breaks separation of concerns; but if I don't do
-// this I have to define everything in headers which is worse.
-template class TokenBase<AstNode>;
-
-template <typename T>
-TokenBase<T>::TokenBase(const T &other)
-{
-    _type = other._type;
-    _stringVal = other._stringVal;
-    _listVal = other._listVal;
-    _charVal = other._charVal;
-}
-
-template <typename T>
-TokenBase<T>::TokenBase(QChar symbol)
-{
-    _type = SYM;
-    _charVal = symbol;
-}
-
-template <typename T>
-TokenBase<T>::TokenBase(QString identifier)
-{
-    _type = IDENT;
-    _stringVal = identifier;
-}
-
-template <typename T>
-TokenBase<T>::TokenBase(QList<T> parenthesized)
-{
-    _type = PAREN;
-    _listVal = std::move(parenthesized);
-}
-
-template <typename T>
-TokenBase<T>::TokenBase(QString integer, int base)
-{
-	_type = INTEGER;
-	_intVal = integer.toInt(nullptr, base);
-}
-
-template <typename T>
-T TokenBase<T>::fromInteger(int integer)
-{
-	T tok;
-
-	tok._type = INTEGER;
-	tok._intVal = integer;
-
-	return tok;
-}
-
-template <typename T>
-TokenBase<T>::TokenBase(char varType, const QString name)
-{
-    _type = VAR;
-    _charVal = varType;
-    _stringVal = name;
-}
-
-template <typename T>
-bool TokenBase<T>::isSym() const
-{
-    return _type == SYM;
-}
-
-template <typename T>
-bool TokenBase<T>::isIdent() const
-{
-    return _type == IDENT;
-}
-
-template <typename T>
-bool TokenBase<T>::isParen() const
-{
-    return _type == PAREN;
-}
-template <typename T>
-bool TokenBase<T>::isVar() const
-{
-    return _type == VAR;
-}
-
-template <typename T>
-bool TokenBase<T>::isInteger() const
-{
-	return _type == INTEGER;
-}
-
-template <typename T>
-TokenBase<T>::TokenBase() : TokenBase("Null")
-{
-}
-
-template <typename T>
-bool TokenBase<T>::operator==(const T &other) const
-{
-	// Why is this needed? Beats me.
-	if (isInteger() && other.isInteger())
-		return _intVal == other._intVal;
-
-    return _type == other._type &&
-		_stringVal == other._stringVal &&
-		_charVal == other._charVal &&
-		_listVal == other._listVal &&
-		_intVal == other._intVal;
-}
-
-template <typename T>
-QList<T> TokenBase<T>::parenContent()
-{
-    if (isParen())
-    {
-        return _listVal;
-    }
-    else
-    {
-        return {};
-    }
-}
-
-template <typename T>
-int TokenBase<T>::integer() const
-{
-	return _intVal;
-}
-
-template <typename T>
-char TokenBase<T>::varType() const
-{
-    return _charVal.toLatin1();
-}
-
-template <typename T>
-const QString &TokenBase<T>::name() const
-{
-    return _stringVal;
-}
-
-template <typename T>
-bool TokenBase<T>::operator!=(const T &other) const
-{
-    return !(this->operator==(other));
-}
-
-template <typename T>
-TokenBase<T>::operator QString() const
-{
-    if (isIdent())
-        return _stringVal;
-    if (isSym())
-        return _charVal;
-    if (isVar())
-        return QString(_charVal) + "." + _stringVal;
-	if (isInteger())
-		return QString::number(_intVal, 10);
-    if (isParen())
-    {
-        QStringList parts;
-        for (const T &tok : _listVal)
-        {
-            parts.append(static_cast<QString>(tok));
-        }
-
-        return "(" + parts.join(" ") + ")";
-    }
-
-    return "Null";
-}
-
-template <typename T>
-int TokenBase<T>::type() const
-{
-    return _type;
-}
-
-template <typename T>
-QString TokenBase<T>::typeToString(int type)
-{
-    static const QString typeNames[] = {"SYMBOL", "IDENT", "PAREN", "VAR", "INTEGER"};
-    return typeNames[type];
-}
-
-template <typename T>
-QChar TokenBase<T>::symbol() const
-{
-    return _charVal;
-}
diff --git a/Token.h b/Token.h
index 82c1906..c7cc7d7 100644
--- a/Token.h
+++ b/Token.h
@@ -58,10 +58,195 @@
     QChar _charVal = QChar(0);
 };
 
+template <typename T>
+TokenBase<T>::TokenBase(const T &other)
+{
+    _type = other._type;
+    _stringVal = other._stringVal;
+    _listVal = other._listVal;
+    _charVal = other._charVal;
+}
+
+template <typename T>
+TokenBase<T>::TokenBase(QChar symbol)
+{
+    _type = SYM;
+    _charVal = symbol;
+}
+
+template <typename T>
+TokenBase<T>::TokenBase(QString identifier)
+{
+    _type = IDENT;
+    _stringVal = identifier;
+}
+
+template <typename T>
+TokenBase<T>::TokenBase(QList<T> parenthesized)
+{
+    _type = PAREN;
+    _listVal = std::move(parenthesized);
+}
+
+template <typename T>
+TokenBase<T>::TokenBase(QString integer, int base)
+{
+    _type = INTEGER;
+    _intVal = integer.toInt(nullptr, base);
+}
+
+template <typename T>
+T TokenBase<T>::fromInteger(int integer)
+{
+    T tok;
+
+    tok._type = INTEGER;
+    tok._intVal = integer;
+
+    return tok;
+}
+
+template <typename T>
+TokenBase<T>::TokenBase(char varType, const QString name)
+{
+    _type = VAR;
+    _charVal = varType;
+    _stringVal = name;
+}
+
+template <typename T>
+bool TokenBase<T>::isSym() const
+{
+    return _type == SYM;
+}
+
+template <typename T>
+bool TokenBase<T>::isIdent() const
+{
+    return _type == IDENT;
+}
+
+template <typename T>
+bool TokenBase<T>::isParen() const
+{
+    return _type == PAREN;
+}
+template <typename T>
+bool TokenBase<T>::isVar() const
+{
+    return _type == VAR;
+}
+
+template <typename T>
+bool TokenBase<T>::isInteger() const
+{
+    return _type == INTEGER;
+}
+
+template <typename T>
+TokenBase<T>::TokenBase() : TokenBase("Null")
+{
+}
+
+template <typename T>
+bool TokenBase<T>::operator==(const T &other) const
+{
+    // Why is this needed? Beats me.
+    if (isInteger() && other.isInteger())
+        return _intVal == other._intVal;
+
+    return _type == other._type &&
+        _stringVal == other._stringVal &&
+        _charVal == other._charVal &&
+        _listVal == other._listVal &&
+        _intVal == other._intVal;
+}
+
+template <typename T>
+QList<T> TokenBase<T>::parenContent()
+{
+    if (isParen())
+    {
+        return _listVal;
+    }
+    else
+    {
+        return {};
+    }
+}
+
+template <typename T>
+int TokenBase<T>::integer() const
+{
+    return _intVal;
+}
+
+template <typename T>
+char TokenBase<T>::varType() const
+{
+    return _charVal.toLatin1();
+}
+
+template <typename T>
+const QString &TokenBase<T>::name() const
+{
+    return _stringVal;
+}
+
+template <typename T>
+bool TokenBase<T>::operator!=(const T &other) const
+{
+    return !(this->operator==(other));
+}
+
+template <typename T>
+TokenBase<T>::operator QString() const
+{
+    if (isIdent())
+        return _stringVal;
+    if (isSym())
+        return _charVal;
+    if (isVar())
+        return QString(_charVal) + "." + _stringVal;
+    if (isInteger())
+        return QString::number(_intVal, 10);
+    if (isParen())
+    {
+        QStringList parts;
+        for (const T &tok : _listVal)
+        {
+            parts.append(static_cast<QString>(tok));
+        }
+
+        return "(" + parts.join(" ") + ")";
+    }
+
+    return "Null";
+}
+
+template <typename T>
+int TokenBase<T>::type() const
+{
+    return _type;
+}
+
+template <typename T>
+QString TokenBase<T>::typeToString(int type)
+{
+    static const QString typeNames[] = {"SYMBOL", "IDENT", "PAREN", "VAR", "INTEGER"};
+    return typeNames[type];
+}
+
+template <typename T>
+QChar TokenBase<T>::symbol() const
+{
+    return _charVal;
+}
+
 class Token : public TokenBase<Token>
 {
 public:
-    using TokenBase::TokenBase;
+    using TokenBase<Token>::TokenBase;
 };
 
 using LTok = QList<Token>;
