Flexible restart method

I brainstormed some ways to be less verbose with this change, however the proposed method gives the most flexibility, and should work in all cases, rather than just a few.