diff --git a/rigify/__init__.py b/rigify/__init__.py
index cf0ed06a3ceebbf85cf2694ae31a00902bbd9066..29eb5bb4308e5a84fab4e80d82ea6a1496dc3a31 100644
--- a/rigify/__init__.py
+++ b/rigify/__init__.py
@@ -74,7 +74,7 @@ def get_rig_list(path):
                     # Check if it's a rig itself
                     if not hasattr(rig, "Rig"):
                         # Check for sub-rigs
-                        ls = get_rig_list(os.path.join(path, f, "")) # "" adds a final slash
+                        ls = get_rig_list(os.path.join(path, f, ""))  # "" adds a final slash
                         rigs.extend(["%s.%s" % (f, l) for l in ls])
                     else:
                         rigs += [f]
@@ -127,7 +127,11 @@ for rig in rig_list:
 ##### REGISTER #####
 
 def register():
-    bpy.utils.register_module(__name__)
+    ui.register()
+    metarig_menu.register()
+
+    bpy.utils.register_class(RigifyName)
+    bpy.utils.register_class(RigifyParameters)
 
     bpy.types.PoseBone.rigify_type = bpy.props.StringProperty(name="Rigify Type", description="Rig type for this bone.")
     bpy.types.PoseBone.rigify_parameters = bpy.props.CollectionProperty(type=RigifyParameters)
@@ -137,12 +141,8 @@ def register():
     IDStore.rigify_types = bpy.props.CollectionProperty(type=RigifyName)
     IDStore.rigify_active_type = bpy.props.IntProperty(name="Rigify Active Type", description="The selected rig type.")
 
-    metarig_menu.register()
-
 
 def unregister():
-    bpy.utils.unregister_module(__name__)
-
     del bpy.types.PoseBone.rigify_type
     del bpy.types.PoseBone.rigify_parameters
 
@@ -151,5 +151,8 @@ def unregister():
     del IDStore.rigify_types
     del IDStore.rigify_active_type
 
-    metarig_menu.unregister()
+    bpy.utils.unregister_class(RigifyName)
+    bpy.utils.unregister_class(RigifyParameters)
 
+    metarig_menu.unregister()
+    ui.unregister()
diff --git a/rigify/metarig_menu.py b/rigify/metarig_menu.py
index 54fae2d5e42fef7e579b8458a9101c8cd17d4f62..828708d0600622f31a46905d13c8ca92d14969bd 100644
--- a/rigify/metarig_menu.py
+++ b/rigify/metarig_menu.py
@@ -46,14 +46,13 @@ menu_func = (lambda self, context: self.layout.operator(AddHuman.bl_idname,
 
 
 def register():
-    bpy.utils.register_module(__name__)
+    bpy.utils.register_class(AddHuman)
 
-    #bpy.types.register(AddHuman)
     bpy.types.INFO_MT_armature_add.append(menu_func)
 
 
 def unregister():
-    bpy.utils.unregister_module(__name__)
+    bpy.utils.unregister_class(AddHuman)
 
     #bpy.types.unregister(AddHuman)
     bpy.types.INFO_MT_armature_add.remove(menu_func)
diff --git a/rigify/ui.py b/rigify/ui.py
index 827b0fc20ca58f180ab91d87859ceb9df139c884..09257f596e0dba087ce6ce3f17d1ff804a0e8e69 100644
--- a/rigify/ui.py
+++ b/rigify/ui.py
@@ -233,23 +233,16 @@ class Sample(bpy.types.Operator):
 #import space_info  # ensure the menu is loaded first
 
 def register():
-    bpy.utils.register_module(__name__)
-
-    #bpy.types.register(DATA_PT_rigify_buttons)
-    #bpy.types.register(BONE_PT_rigify_buttons)
-    #bpy.types.register(Generate)
-    #bpy.types.register(Sample)
+    bpy.utils.register_class(DATA_PT_rigify_buttons)
+    bpy.utils.register_class(BONE_PT_rigify_buttons)
+    bpy.utils.register_class(Generate)
+    bpy.utils.register_class(Sample)
 
     #space_info.INFO_MT_armature_add.append(ui.menu_func)
-    pass
 
 
 def unregister():
-    bpy.utils.unregister_module(__name__)
-
-    #bpy.types.unregister(DATA_PT_rigify_buttons)
-    #bpy.types.unregister(BONE_PT_rigify_buttons)
-    #bpy.types.unregister(Generate)
-    #bpy.types.unregister(Sample)
-    pass
-
+    bpy.types.unregister(DATA_PT_rigify_buttons)
+    bpy.types.unregister(BONE_PT_rigify_buttons)
+    bpy.types.unregister(Generate)
+    bpy.types.unregister(Sample)