added a canceled state and renamed is* methods to was*