Add State and transitions. New Exceptions. Raise instead of crashing when attempting to access buffer. Allow wiping more than once. Add specs.