docs: function(instance, cb) {
      var specific;
      logger.info('poll instance start: ' + instance.InstanceId);
      _ec2.describeInstances({InstanceIds: [instance.InstanceId]}, function(err, data) {
        if (err) {
          if (pollErrCount > 5) {
            return cb(err);
          }
          else {
            pollErrCount++;
            setTimeout(function() { pollInstanceStart(instance, cb); }, 2000);
          }
        }
        var inst = data.Reservations[0].Instances[0];
        if (!(inst.State.Name === 'running' || inst.State.Name === 'terminated' || inst.State.Name === 'stopped')) {
          setTimeout(function() { pollInstanceStart(instance, cb); }, 2000);
        }
        else {
          specific = {imageId: inst.ImageId,
                      instanceId: inst.InstanceId,
                      publicIpAddress: inst.PublicIpAddress,
                      privateIpAddress: inst.PrivateIpAddress,
                      securityGroups: inst.SecurityGroups,
                      tags: inst.Tags};
          cb(null, specific);
        }
      });
    }