     super
 
     @kc = KD.singletons.kiteController
-
-    @lastState =
-      state    : 'STOPPED'
-
     @dialogIsOpen = no
 
-  run:(command, callback)->
-
+  run:(vm, command, callback)->
     KD.requireLogin
       callback : =>
         @askForApprove command, (approved)=>

            @kc.run
              kiteName : 'os'
              method   : command
            , cb
          else unless command is 'vm.info' then @info()
      onFailMsg : "Login required to use VMs"  unless command is 'vm.info'
      onFail    : =>
        unless command is 'vm.info' then callback yes
        else callback null, state: 'STOPPED'
      silence   : yes

  start:(callback)->
    @run 'vm.start', callback

  stop:(callback)->
    @run 'vm.stop', callback

  reinitialize:(callback)->
    @run 'vm.reinitialize', callback

  info:(callback)->
    @run 'vm.info', (err, info)=>
      unless err then @lastState = info
      else warn "[VM]", err

      @emit 'StateChanged', err, info
      callback? err, info
    , no

  # fixme GG!
  getTotalVMCount:(callback)->

  # fixme GG!
  getTotalLoC:(callback)->
    callback null, "776M+"

  _cbWrapper:(callback)->
    return (rest...)=>
