think this is a good first step to being able to detangle the current code tangle that is the high-level functions
[ ] first just add cli subpackage that literally calls high-level functions with config
[ ] after that works, factor out weird ass logic that tries to make high-level functions accept either a config or args, so that the config logic is in the cli functions, that then call the high-level "core" functions with the appropriate args
to be able to easily run config files