       i++ while parentPath[i] is viewmodelPath[i]
       difference = viewmodelPath.substr(i)
       return difference
-    if initial.share
-      shared = if initial.share instanceof Array then initial.share else [initial.share]
-      for share in shared
-        viewmodel.load ViewModel.shared[share]
+    loadObj initial.share, ViewModel.shared, viewmodel
+    loadObj initial.mixin, ViewModel.mixins, viewmodel
+
     return
 
 

        else
          ViewModel.shared[key][prop] = ViewModel.makeReactiveProperty(content)

    return

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