diff --git a/include/ast/BinaryOpNode.h b/include/ast/expression/BinaryOpNode.h
similarity index 96%
rename from include/ast/BinaryOpNode.h
rename to include/ast/expression/BinaryOpNode.h
index d085dd9264f17dada98709530cf74e14dfe4995f..09cb033c62e9c61a60f11b3c246efed2580210df 100644
--- a/include/ast/BinaryOpNode.h
+++ b/include/ast/expression/BinaryOpNode.h
@@ -4,8 +4,8 @@
  */
 #pragma once
 
-#include "ast/ExpressionNode.h"
-#include "ast/LiteralNode.h"
+#include "ast/expression/ExpressionNode.h"
+#include "ast/expression/LiteralNode.h"
 #include "token/Token.h"
 
 namespace funk
diff --git a/include/ast/ExpressionNode.h b/include/ast/expression/ExpressionNode.h
similarity index 100%
rename from include/ast/ExpressionNode.h
rename to include/ast/expression/ExpressionNode.h
diff --git a/include/ast/LiteralNode.h b/include/ast/expression/LiteralNode.h
similarity index 96%
rename from include/ast/LiteralNode.h
rename to include/ast/expression/LiteralNode.h
index 81237fc7c18c76f110eec489ad49cbf0a12849c8..3bfa9a3109bd4d0e7f43ed7669dc567b36a237cd 100644
--- a/include/ast/LiteralNode.h
+++ b/include/ast/expression/LiteralNode.h
@@ -4,7 +4,7 @@
  */
 #pragma once
 
-#include "ast/ExpressionNode.h"
+#include "ast/expression/ExpressionNode.h"
 
 namespace funk
 {
diff --git a/include/ast/UnaryOpNode.h b/include/ast/expression/UnaryOpNode.h
similarity index 95%
rename from include/ast/UnaryOpNode.h
rename to include/ast/expression/UnaryOpNode.h
index 3a39f18bb4462576beb74645fa481a6a8bd1f2db..34b1e2ccd8779f24d4ce2a0d4e233c92084fa122 100644
--- a/include/ast/UnaryOpNode.h
+++ b/include/ast/expression/UnaryOpNode.h
@@ -4,8 +4,8 @@
  */
 #pragma once
 
-#include "ast/ExpressionNode.h"
-#include "ast/LiteralNode.h"
+#include "ast/expression/ExpressionNode.h"
+#include "ast/expression/LiteralNode.h"
 #include "token/Token.h"
 
 namespace funk
diff --git a/source/ast/BinaryOpNode.cc b/source/ast/expression/BinaryOpNode.cc
similarity index 98%
rename from source/ast/BinaryOpNode.cc
rename to source/ast/expression/BinaryOpNode.cc
index dfb707d1b8a1ee6bbc06512bb2b6f8f8406d00e1..abe6cd1a9f5fa79cff142e612ba500c019f3bda8 100644
--- a/source/ast/BinaryOpNode.cc
+++ b/source/ast/expression/BinaryOpNode.cc
@@ -1,4 +1,4 @@
-#include "ast/BinaryOpNode.h"
+#include "ast/expression/BinaryOpNode.h"
 
 namespace funk
 {
diff --git a/source/ast/ExpressionNode.cc b/source/ast/expression/ExpressionNode.cc
similarity index 72%
rename from source/ast/ExpressionNode.cc
rename to source/ast/expression/ExpressionNode.cc
index c7049428c022cc82e9551f043da934028f616cf3..168c9437e1c236442d68d65144f42e47b53a0ab2 100644
--- a/source/ast/ExpressionNode.cc
+++ b/source/ast/expression/ExpressionNode.cc
@@ -1,4 +1,4 @@
-#include "ast/ExpressionNode.h"
+#include "ast/expression/ExpressionNode.h"
 
 namespace funk
 {
diff --git a/source/ast/LiteralNode.cc b/source/ast/expression/LiteralNode.cc
similarity index 93%
rename from source/ast/LiteralNode.cc
rename to source/ast/expression/LiteralNode.cc
index a357243f21dbca0d086b274f826ceaef8ce3136d..f14a553e5700800fb99614943fc46afffb63f387 100644
--- a/source/ast/LiteralNode.cc
+++ b/source/ast/expression/LiteralNode.cc
@@ -1,4 +1,4 @@
-#include "ast/LiteralNode.h"
+#include "ast/expression/LiteralNode.h"
 
 namespace funk
 {
diff --git a/source/ast/UnaryOpNode.cc b/source/ast/expression/UnaryOpNode.cc
similarity index 97%
rename from source/ast/UnaryOpNode.cc
rename to source/ast/expression/UnaryOpNode.cc
index f275cd92e2793c2a490f0f4bf97d1d46242d1fd7..60dcdb82825e29ad1301038e92885fb269872048 100644
--- a/source/ast/UnaryOpNode.cc
+++ b/source/ast/expression/UnaryOpNode.cc
@@ -1,4 +1,4 @@
-#include "ast/UnaryOpNode.h"
+#include "ast/expression/UnaryOpNode.h"
 
 namespace funk
 {