by using a first class function, I'm pretty sure you don't have to pass in `c.RemoteAddr().String()` as `addr`, but you can do this simply calling `c.RemoteAddr().String()` as needed, or just doing this explicitly at the start of the function.