diff --git a/pymule/__init__.py b/pymule/__init__.py
index 2bbb715c1308e4188d534d09313c1f4000235104..10acc3910ec4671f08e1265c50b6a38401569a90 100644
--- a/pymule/__init__.py
+++ b/pymule/__init__.py
@@ -4,3 +4,4 @@ import matplotlib.pyplot as plt
 from vegas import importvegas
 from errortools import mergenumbers, plusnumbers, dividenumbers, timesnumbers,\
                        mergeplots, addplots, combineNplots, scaleplot
+from loader import importreg, pattern
diff --git a/pymule/loader.py b/pymule/loader.py
new file mode 100644
index 0000000000000000000000000000000000000000..f8e559c19568f516f998f503971ff880eaf1b59d
--- /dev/null
+++ b/pymule/loader.py
@@ -0,0 +1,36 @@
+import re
+from vegas import importvegas
+import os
+
+
+def importreg(r, folder='.', filenames=None,
+              merge={}, types=[int,float,float]):
+    if filenames is None:
+        filenames = os.listdir(folder)
+    dic = {}
+    for filename in filenames:
+        m = re.match(r, filename)
+        if m:
+            v = importvegas(os.path.join(folder, filename))
+            for p, n in merge.iteritems():
+                if n > 0:
+                    v[p] = mergebins(v[p], n)
+
+            if len(types) == len(m.groups()):
+                k = tuple(f(v) for v,f in zip(m.groups(), types))
+            else:
+                k = m.groups()
+            dic[k] = v
+
+    return dic
+
+
+def pattern(piece='.*', flavour='.*', obs='', folderp='.*'):
+    if len(obs) > 0:
+        return (
+            folderp + piece + '_' + flavour + '_S(\d+)X([\d\.]+)D([\d\.]+).*'
+        )
+    else:
+        return (
+            folderp + piece + '_' + flavour + '_S(\d+)X([\d\.]+)D([\d\.]+).*'
+        )