@solnic that's a good point. In general I think it's good to try to eliminate conditional logic in the instance methods by having different classes represent different states. Sometimes that does push up the conditional to the constructor/factory method (which I think it may in this case), but I think that's a reasonable change.