 
     items = parseItems source, target
     {domain, machine} = items
-    return unless domain
-
-    @askForApprove items, 'delete', (modal)=>
-      return unless machine? # Remove a domain from a machine
+    return unless domain or machine
+
+    modal = @createApproveModal items, 'delete'
+    modal.once 'Approved', =>
       jDomain = domain.dia.getData().domain # JDomain
       vmName  = machine.dia.getData().title # JVM.hostnameAlias
       jDomain.unbindVM hostnameAlias: vmName, (err)=>


    items = parseItems source, target
    {domain, machine} = items
    return unless domain

    if machine?
      if domain.dia.getData().domain.hostnameAlias.length > 0
        return new KDNotificationView
          title : "A domain name can only be bound to one VM."

    if machine? # Assign a domain to a machine
      jDomain = domain.dia.getData().domain # JDomain
      vmName  = machine.dia.getData().title # JVM.hostnameAlias
      jDomain.bindVM hostnameAlias: vmName, (err)=>
        return KD.showError err  if err
        jDomain.hostnameAlias.push vmName
        createConnection()

          @connect {dia : domain , joint : 'right'}, \
                   {dia : machine, joint : 'left' }, yes

  createApproveModal:(items, action)->
    return unless KD.isLoggedIn()
      new KDNotificationView
        title : "You need to login to change domain settings."
    return new EnvironmentApprovalModal {action}, items

  whenItemsLoadedFor:do->
    # poor man's when/promise implementation ~ GG
