I doubt it matters at all in terms of performance but it's interesting that there are 3 different data structures representing the Mod/Fun/Arg/RefreshRate data.

1. Here you store it as `{M, F, A, RR}`

2. Each is passed to `register_mod` as its own argument

3. The register `handle_call` has `{M, F, A}` as and `RR`

Maybe just pass around as `{{M, F, A}, RR}` everywhere to be consistent?  I dunno, I'm just nitpicking and at end of day shouldn't really matter.