                     diameter        : 12
                   callback          : ->
                     form = modal.modalTabs.forms["Create VM"]
-                    form.inputs.type.setValue "personal"
-                shared              :
+                    form.inputs.type.setValue "user"
+                expensed            :
+                  title             : "Create a <b>Personal</b> VM using group quota"
+                  style             : "modal-clean-gray hidden"
+                  type              : "submit"
+                  loader            :
+                    color           : "#ffffff"
+                    diameter        : 12
+                  callback          : ->
+                    form = modal.modalTabs.forms["Create VM"]
+                    form.inputs.type.setValue "expensed"
+                group               :
                   title             : "Create a <b>Shared</b> VM"
                   style             : "modal-clean-gray hidden"
                   type              : "submit"

    if not currentGroup or currentGroup is 'koding' then "koding~#{KD.nick()}"
    else currentGroup

  createGroupVM:(type='personal', planCode, callback)->
    defaultVMOptions =
      planCode       : planCode
    group = KD.singletons.groupsController.getCurrentGroup()

    group.createVM {type}, callback

  fetchVMs:(callback)->
    return callback null, @vms  if @vms.length > 0

    vmController        = @getSingleton('vmController')
    canCreateSharedVM   = "owner" in KD.config.roles or "admin" in KD.config.roles
    canCreatePersonalVM = "member" in KD.config.roles
    canCreateExpensedVM = yes

    # Take this to a better place, possibly to payment controller.
    makePayment = (type, plan, callback)->
      planCode = plan.code
      if type is 'group' or type is 'expensed'
        group = KD.singletons.groupsController.getCurrentGroup()
        group.checkPayment (err, payments)->
          if err or payments.length is 0
