should state machine have ability to add/remove - C#