Change some assertions to exceptions, also make distinction between suspension vs. spent.