User should be able to provide a custom external objective function for the optimization instead of using one of the prewritten interfaces (e.g. PARCS, POLARIS, etc.). This could be required to take the form of a custom external python class so that the same class IO that is used for the MIDAS objective functions can be used for the external objective functions.