diff --git a/src/jrr1g18/boring/nodes/IdentifierNode.java b/src/jrr1g18/boring/nodes/IdentifierNode.java
index 3611baee65aae6cf29ff12bf4cf9246388fa7f87..60eff6e36894173c0f2fe217d3f5e4b763605768 100644
--- a/src/jrr1g18/boring/nodes/IdentifierNode.java
+++ b/src/jrr1g18/boring/nodes/IdentifierNode.java
@@ -17,4 +17,9 @@ public class IdentifierNode extends ASTNode {
         this.m_name = name;
     }
 
+    @Override
+    public boolean isValidType(NodeType type) {
+        return type == NodeType.IDENTIFIER;
+    }
+
 }
diff --git a/src/jrr1g18/boring/nodes/UnaryOperationNode.java b/src/jrr1g18/boring/nodes/UnaryOperationNode.java
index 0787bc3694d7a86cde711c9c3b1441c9c6a07096..4b2c683d478e6e910edb43f96f8338b77d4c970f 100644
--- a/src/jrr1g18/boring/nodes/UnaryOperationNode.java
+++ b/src/jrr1g18/boring/nodes/UnaryOperationNode.java
@@ -1,8 +1,20 @@
 package jrr1g18.boring.nodes;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 public class UnaryOperationNode extends ASTNode {
     private ASTNode m_operand;
 
+    private static final List<NodeType> VALID_NODES;
+    static {
+        List<NodeType> nodes = new ArrayList<>();
+        nodes.add(NodeType.UNARYMINUS);
+        nodes.add(NodeType.UNARYPLUS);
+        VALID_NODES = Collections.unmodifiableList(nodes);
+    }
+
     public UnaryOperationNode(NodeType type, ASTNode operand) {
         super(type);
         m_operand = operand;
@@ -12,4 +24,9 @@ public class UnaryOperationNode extends ASTNode {
         return m_operand;
     }
 
+    @Override
+    public boolean isValidType(NodeType type) {
+        return VALID_NODES.contains(type);
+    }
+
 }
diff --git a/src/jrr1g18/boring/nodes/ValueNode.java b/src/jrr1g18/boring/nodes/ValueNode.java
index 8ae54f89c5f749222b10063c13c2737c4727c6bf..ead07038bd2856f941f9c06b48cc9ffb5c616269 100644
--- a/src/jrr1g18/boring/nodes/ValueNode.java
+++ b/src/jrr1g18/boring/nodes/ValueNode.java
@@ -12,4 +12,9 @@ public class ValueNode extends ASTNode {
     public Integer getValue() {
         return m_value;
     }
+
+    @Override
+    public boolean isValidType(NodeType type) {
+        return type == NodeType.INTEGER;
+    }
 }