an alternative here would be to push the handling of this down into the wheel code, i.e. the consumers of the scheme should be handling the override, not the scheme itself,  but I guess this is ok.