independant caches for each environment
diff --git a/reclass/storage/memcache_proxy.py b/reclass/storage/memcache_proxy.py
index 485024b..6c898a2 100644
--- a/reclass/storage/memcache_proxy.py
+++ b/reclass/storage/memcache_proxy.py
@@ -34,7 +34,7 @@
         if not self._cache_nodes:
             return self._real_storage.get_node(name)
         try:
-            ret = self._nodes_cache[name]
+            return self._nodes_cache[name]
         except KeyError, e:
             ret = self._real_storage.get_node(name)
             self._nodes_cache[name] = ret
@@ -44,10 +44,12 @@
         if not self._cache_classes:
             return self._real_storage.get_class(name, environment)
         try:
-            ret = self._classes_cache[name]
+            return self._classes_cache[environment][name]
         except KeyError, e:
+            if environment not in self._classes_cache:
+                self._classes_cache[environment] = dict()
             ret = self._real_storage.get_class(name, environment)
-            self._classes_cache[name] = ret
+            self._classes_cache[environment][name] = ret
         return ret
 
     def enumerate_nodes(self):