diff --git a/reclass/values/parser.py b/reclass/values/parser.py
index ca59da1..fc8fb34 100644
--- a/reclass/values/parser.py
+++ b/reclass/values/parser.py
@@ -7,9 +7,7 @@
 import pyparsing as pp
 
 from compitem import CompItem
-from dictitem import DictItem
 from expitem import ExpItem
-from listitem import ListItem
 from refitem import RefItem
 from scaitem import ScaItem
 
@@ -109,17 +107,6 @@
 
     def parse(self, value, delimiter):
         self._delimiter = delimiter
-
-        if isinstance(value, str):
-            return self._parse_string(value)
-        elif isinstance(value, list):
-            return ListItem(value)
-        elif isinstance(value, dict):
-            return DictItem(value)
-        else:
-            return ScaItem(value)
-
-    def _parse_string(self, value):
         dollars = value.count('$')
         if dollars == 0:
             # speed up: only use pyparsing if there is a $ in the string
diff --git a/reclass/values/value.py b/reclass/values/value.py
index 34ac770..842f12c 100644
--- a/reclass/values/value.py
+++ b/reclass/values/value.py
@@ -5,15 +5,25 @@
 #
 
 from parser import Parser
+from dictitem import DictItem
+from listitem import ListItem
+from scaitem import ScaItem
 from reclass.defaults import PARAMETER_INTERPOLATION_DELIMITER
 
 class Value(object):
 
     _parser = Parser()
 
-    def __init__(self, val, delimiter=PARAMETER_INTERPOLATION_DELIMITER):
+    def __init__(self, value, delimiter=PARAMETER_INTERPOLATION_DELIMITER):
         self._delimiter = delimiter
-        self._item = self._parser.parse(val, self._delimiter)
+        if isinstance(value, str):
+            self._item = self._parser.parse(value, delimiter)
+        elif isinstance(value, list):
+            self._item = ListItem(value)
+        elif isinstance(value, dict):
+            self._item = DictItem(value)
+        else:
+            self._item = ScaItem(value)
 
     def is_container(self):
         return self._item.is_container()
