This property had in his small history half a dozen names (always a bad sign, right?). "invoked", "invocationAllowed" .... But finally I decided to be very generic and don't tie myself here to invocation counting. Two reasons: With this naming I can describe the functionality of this class without making assumptions about the subclasses. I know that every subclass must have a call method but I don't know how many other methods exists. Some of them may call checkState(), some not (e.g. getter methods in the subclasses).

Another reason: maybe, someday, we'll have other situations detected in subclasses which make the command "uncallable". I would like to be open to this.