type M for map[string]interface{}