       @info vm, callback? rest...
 
   hasDefaultVM:(callback)->
-    # Default VM should be the personal vm in Koding group
-    @fetchVMs (err, vms)->
-      if err
-        warn "An error occured while fetching VMs:", err
-        return callback yes
-
-      # Check if there is at least one personal vm from koding group
-      for vm in vms
-        if (vm.indexOf 'vm-') is 0 and (vm.indexOf "#{KD.defaultSlug}.kd.io") > -1
-          return callback yes
-
-      callback no
+    KD.remote.api.JVM.fetchDefaultVm callback
 
   createDefaultVM:->
-    @hasDefaultVM (state)->
+    @hasDefaultVM (err, state)->
       return warn 'Default VM already exists.'  if state
+      new KDNotificationView title: "Creating your VM..."
       KD.remote.cacheable KD.defaultSlug, (err, group)->
         if err or not group?.length
           return warn err

    currentGroup   = if entryPoint?.type is 'group' then entryPoint.slug
    currentGroup or= KD.defaultSlug

    @fetchVMs (err, vms)=>
      if err or not vms
        return callback null

      # If there is just one return it
      if vms.length is 1
        return callback @defaultVmName = vms.first

      # Check for personal VMs in current group
      vmName = @hasThisVM("vm-%d.#{KD.nick()}.#{currentGroup}.kd.io", vms)
      return callback @defaultVmName = vmName  if vmName

      # Check for shared VMs in current group
      vmName = @hasThisVM("shared-%d.#{currentGroup}.kd.io", vms)
      return callback @defaultVmName = vmName  if vmName

      # Check for personal VMs in Koding or Guests group
      vmName = @hasThisVM("vm-%d.#{KD.nick()}.#{KD.defaultSlug}.kd.io", vms)
      return callback @defaultVmName = vmName  if vmName

      callback @defaultVmName = vms.first

  createGroupVM:(type='user', planCode, callback=->)->
    vmCreateCallback = (err, vm)->

        callback? err, vm, info
      , no

  fetchVmName: (options, callback) ->
    if options.vmName?
      @utils.defer -> callback null, options.vmName
    else
      @fetchDefaultVmName (defaultVmName) ->
        if defaultVmName?
