         else
           ViewModel.shared[key][prop] = ViewModel.makeReactiveProperty(content)
 
+    return
+
+  @mixins = {}
+  @mixin = (obj) ->
+    for key, value of obj
+      ViewModel.mixins[key] = value
     return

  load: (obj) ->
    viewmodel = this
    for key, value of obj when key isnt 'share'
      if _.isFunction(value)
        # we don't care, just take the new function
        viewmodel[key] = value

      i++ while parentPath[i] is viewmodelPath[i]
      difference = viewmodelPath.substr(i)
      return difference
    loadObj initial.share, ViewModel.shared, viewmodel
    loadObj initial.mixin, ViewModel.mixins, viewmodel

    return


