diff --git a/openpnm/core/Base.py b/openpnm/core/Base.py
index <HASH>..<HASH> 100644
--- a/openpnm/core/Base.py
+++ b/openpnm/core/Base.py
@@ -16,9 +16,9 @@ class Base(dict):
         instance = super(Base, cls).__new__(cls, *args, **kwargs)
         return instance
 
-    def __init__(self, Np=0, Nt=0, name=None, simulation=None):
+    def __init__(self, kv={}, Np=0, Nt=0, name=None, simulation=None):
         self.settings.setdefault('prefix', 'base')
-        super().__init__()
+        super().__init__(kv)
         if simulation is None:
             simulation = ws.new_simulation()
         simulation.append(self)
diff --git a/openpnm/core/Simulation.py b/openpnm/core/Simulation.py
index <HASH>..<HASH> 100644
--- a/openpnm/core/Simulation.py
+++ b/openpnm/core/Simulation.py
@@ -88,6 +88,8 @@ class Simulation(list):
             num = str(len(self.physics.keys())).zfill(2)
         elif 'GenericAlgorithm' in obj.mro():
             num = str(len(self.algorithms.keys())).zfill(2)
+        else:
+            num = str(len(self)).zfill(2)
         name = prefix + '_' + num
         return name
Chnage Base to accept a dict during intialization