code: func (c *Client) Push(value interface{}, params map[string]string) (*Client, error) {
  	body, err := json.Marshal(value)
  	if err != nil {
  		log.Printf("%v\n", err)
  		return nil, err
  	}
  
  	res, err := c.api.Call("POST", c.Url, c.Auth, body, params)
  	if err != nil {
  		return nil, err
  	}
  
  	var r map[string]string
  
  	err = json.Unmarshal(res, &r)
  	if err != nil {
  		log.Printf("%v\n", err)
  		return nil, err
  	}
  
  	ret := &Client{
  		api:   c.api,
  		Auth:  c.Auth,
  		Url:   c.Url + "/" + r["name"],
  		value: value}
  
  	return ret, nil
  }
docs: // Push creates a new value under the current root url.
  // A populated pointer with that value is also returned.