code: function done(err, result) {
                  if(err) {
                      def.reject(err);
                      callback(err);
                      return;
                  }
  
                  def.resolve(result);
                  callback(undefined, result);
              }
docs: This method will be invoked when the seeding is completed or when something
  went wrong. This method will then call the callback and rejects or resolves
  the promise object. This way, users of the library can use both.
  
  @param  {*}        err    [description]
  @param  {Object}   result [description]