Why do you need to set defaults for `name` and `options` since original function didn't set them? Especially being as confusing as they are (name defaults to hash while options defaults to nil, intuitively it should be the other way around!)

You seem to always have a defined `name` and `options` in the caller function, (even if nil) so you don't need to default them in this new function.