Reset flow (WiP)

TODO: Add the rest of the tests + clean-up.