diff --git a/bucklets/yang.bucklet b/bucklets/yang.bucklet
index 9c15a51..3d68180 100644
--- a/bucklets/yang.bucklet
+++ b/bucklets/yang.bucklet
@@ -1,9 +1,73 @@
 include_defs('//onos.defs')
+include_defs('//bucklets/onos.bucklet')
+include_defs('//bucklets/onos_app.bucklet')
 
 def _get_name():
     base_path = get_base_path()
     return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator
 
+YANG_TOOLS = [
+    '//apps/yang:onos-apps-yang',
+    '//lib:onos-yang-runtime',
+]
+
+def yang_model(
+    name = None,
+    app_name = None,
+    title = 'YANG Model',
+    url = 'http://onosproject.org',
+    description = None,
+    deps = [],
+    **kwargs
+    ):
+
+    if name is None:
+        name = _get_name()
+
+    yang = name + '-yang'
+    yangSrcs = yang + '#srcs'
+    schema = name + '-schema'
+    registrator = name + '-registrator'
+
+    yang_library(
+      name = yang,
+      srcs = glob(['src/**/*.yang']),
+    )
+
+    genrule(
+      name = schema,
+      srcs = [ ':' + yangSrcs ],
+      cmd = '$(location //buck-tools:yang-schema) $OUT $SRCS',
+      out = 'yang'
+    )
+
+    genrule(
+      name = registrator,
+      srcs = [ ':' + yangSrcs ],
+      cmd = '$(location //buck-tools:yang-registrator) $OUT app_name $SRCS',
+      out = 'YangModelRegistrator.java'
+    )
+
+    osgi_jar(
+      name = 'onos-models-demo',
+      srcs = [ ':' + yangSrcs, ':' + registrator ],
+      deps = deps + YANG_TOOLS,
+      resources = [ ':' + schema ],
+      resources_root = ".",
+      do_checkstyle = False,
+      do_javadocs = False,
+    )
+
+    onos_app (
+      app_name = app_name,
+      title = title,
+      category = 'Model',
+      url = url,
+      description = description,
+      required_apps = [ 'org.onosproject.yang' ],
+    )
+
+
 def yang_osgi_jar(
     name = None,
     srcs = None,
diff --git a/models/demo/BUCK b/models/demo/BUCK
index 6b4456a..5fae4f6 100644
--- a/models/demo/BUCK
+++ b/models/demo/BUCK
@@ -2,56 +2,9 @@
   '//lib:CORE_DEPS',
 ]
 
-
-# The following will be wrapped into a macro to be used something like this:
-#
-# yang_model (
-#   app_name = 'org.onosproject.models.foobar',
-#   title = 'Demo YANG Model',
-#   url = 'http://onosproject.org',
-# )
-
-
-YANG_TOOLS = [
-  '//apps/yang:onos-apps-yang',
-  '//lib:onos-yang-runtime',
-]
-
-yang_library(
-  name = 'yang',
-  srcs = glob(['src/**/*.yang']),
-)
-
-genrule(
-  name = 'schema',
-  srcs = [ ':yang#srcs' ],
-  cmd = '$(location //buck-tools:yang-schema) $OUT $SRCS',
-  out = 'yang'
-)
-
-genrule(
-  name = 'registrator',
-  srcs = glob(['src/**/*.yang']),
-  cmd = '$(location //buck-tools:yang-registrator) $OUT org.onosproject.models.demo $SRCS',
-  out = 'YangModelRegistrator.java'
-)
-
-osgi_jar(
-  name = 'onos-models-demo',
-  # srcs = [ ':registrator' ],
-  srcs = [ ':yang#srcs', ':registrator' ],
-  deps = COMPILE_DEPS + YANG_TOOLS,
-  resources = [ ':schema' ],
-  resources_root = ".",
-  do_checkstyle = False,
-  do_javadocs = False,
-)
-
-onos_app (
+yang_model (
   app_name = 'org.onosproject.models.demo',
   title = 'Demo YANG Model',
-  category = 'Model',
   url = 'http://onosproject.org',
-  description = 'Demo YANG model extension.',
-  required_apps = [ 'org.onosproject.yang' ],
+  deps = COMPILE_DEPS,
 )
