I guess, if all those closure functions just feed system, it might be okay to just refactor the system instantiation in `get_module_for_descriptor_internal` to allow this rebinding (make it a function that takes user as an argument).  I wonder how maintainable that will be in the future -- will new coders remember to build the System that way?