code: func newTransfer(tr *Transfer, name string, path string) *Transfer {
  	t := &Transfer{
  		Name:          name,
  		Path:          path,
  		Oid:           tr.Oid,
  		Size:          tr.Size,
  		Authenticated: tr.Authenticated,
  		Actions:       make(ActionSet),
  	}
  
  	if tr.Error != nil {
  		t.Error = &ObjectError{
  			Code:    tr.Error.Code,
  			Message: tr.Error.Message,
  		}
  	}
  
  	for rel, action := range tr.Actions {
  		t.Actions[rel] = &Action{
  			Href:      action.Href,
  			Header:    action.Header,
  			ExpiresAt: action.ExpiresAt,
  			ExpiresIn: action.ExpiresIn,
  			createdAt: action.createdAt,
  		}
  	}
  
  	if tr.Links != nil {
  		t.Links = make(ActionSet)
  
  		for rel, link := range tr.Links {
  			t.Links[rel] = &Action{
  				Href:      link.Href,
  				Header:    link.Header,
  				ExpiresAt: link.ExpiresAt,
  				ExpiresIn: link.ExpiresIn,
  				createdAt: link.createdAt,
  			}
  		}
  	}
  
  	return t
  }
docs: // newTransfer returns a copy of the given Transfer, with the name and path
  // values set.