code: func (c *Conn) get(index string, _type string, id string, args map[string]interface{}, source *json.RawMessage) (BaseResponse, error) {
  	var url string
  	retval := BaseResponse{Source: source}
  	if len(_type) > 0 {
  		url = fmt.Sprintf("/%s/%s/%s", index, _type, id)
  	} else {
  		url = fmt.Sprintf("/%s/%s", index, id)
  	}
  	body, err := c.DoCommand("GET", url, args, nil)
  	if err != nil {
  		return retval, err
  	}
  	if err == nil {
  		// marshall into json
  		jsonErr := json.Unmarshal(body, &retval)
  		if jsonErr != nil {
  			return retval, jsonErr
  		}
  	}
  	return retval, err
  }
docs: // Get allows caller to get a typed JSON document from the index based on its id.
  // GET - retrieves the doc
  // HEAD - checks for existence of the doc
  // http://www.elasticsearch.org/guide/reference/api/get.html
  // TODO: make this implement an interface