modeled after the linsolver support. a few built-in presets, as well as reading options from a json file