       i++
     return
 
+  loadObj = (obj, collection, viewmodel) ->
+    if obj
+      array = if obj instanceof Array then obj else [obj]
+      for element in array
+        viewmodel.load collection[element]
+    return
 
   constructor: (initial) ->
     viewmodel = this

      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]
    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
