Switch the few registered functions to use multidispatch, add tests