The idea here is that we move a lot of the 'meat' out of fu-main into the engine. This also lets us simplify a lot of things and ensures the user authentication is simple and easy to audit.