Implementing more sophisticated closures would benefit from splitting the calculation up into separate components, which will have complex dependencies among each other. Rather than require the user to specify all of these in the input file, it would be nice if the components could create their dependencies as needed. If the user has already specified them in the input file then that would be used. Otherwise, the component would be created with default settings.