     provider.remove client, options, callback
 
 
+  addGroupAdmin = (group, machineInfo, callback) ->
+
+    # TODO Do we need all admins or only some of them? ~ GG
+    # Maybe some of them as admin some of them as user etc.
+    group.fetchAdmin (err, admin) ->
+
+      if not err and admin and not admin.getId().equals account.getId()
+        admin.fetchUser (err, adminUser) ->
+          if not err and adminUser
+            machineInfo.users = [{
+              id       : adminUser.getId(),
+              username : adminUser.username,
+              sudo     : yes, owner: yes
+            }]
+          callback machineInfo
+      else
+        callback machineInfo
+
+
   @generateStackFromTemplate = (data, options, callback) ->
 
     { account, user, group, template, client } = data

# coffeelint: disable=cyclomatic_complexity
# FIXME ~GG ^^

{ Base, secure, signature } = require 'bongo'

KONFIG       = require 'koding-config-manager'


          # This is optional, since for koding group for example
          # we don't want to add our admins into users machines ~ GG
          if options.addGroupAdminToMachines
            addGroupAdmin group, machineInfo, (_machine) -> create _machine
          else
            create machineInfo

      async.series queue, -> callback null, { stack, results }

