State changes on exception. Merge @bacongobbler idea. Close #39