   constructor: ->
     @ref_count = 1
 
-  _destroy: ->
+  __destroy: ->
     kb.vmReleaseObservables(this)
 
   # reference counting

  release: ->
    throw new Error("ViewModel: ref_count is corrupt: " + @ref_count) if (@ref_count <= 0)
    @ref_count--
    @_destroy() unless @ref_count
    @

  refCount: -> return @ref_count

    missing = _.difference(missing, _.keys(@_kb_vm.model.attributes)) if not @_kb_vm.model_ref or @_kb_vm.model_ref.isLoaded()
    @_updateAttributeObservor(@_kb_vm.model, key) for key in missing

  __destroy: ->
    (@_kb_vm.model.unbind('change', @_kb_vm_onModelChange); @_kb_vm.model = null) if @_kb_vm.model
    view_model = @_kb_vm.view_model; @_kb_vm.view_model = null
    kb.vmReleaseObservables(view_model, @_kb_vm.observables)
