code: func (c *Config) GetSubConfig(key string) (Config, error) {
  	val, err := c.Get(key)
  	if err != nil {
  		return Config{}, err
  	}
  	sc, ok := val.(map[string]interface{})
  	if !ok {
  		return nil, fmt.Errorf("Wrong type for %s (Type:%T Expecting:%T)", key, val, sc)
  	}
  	return *(*Config)(unsafe.Pointer(&(sc))), nil
  }
docs: // GetSubConfig : get a subconfig referenced by key
  // return (Config, error)