I have this code ```go
func (c *Client) UpdateAddon() {
println("addon received")
}
func (c *Client) Update(data map[string]any) {
for key := range data {
self := reflect.ValueOf(c)
name := fmt.Sprintf("Update%s", strings.Title(key))
method := self.MethodByName(name)
if method.IsZero() {
continue
}
args := []reflect.Value{}
method.Call(args) // should call UpdateAddon on key addon. For now panics.
}
}