Prototype state flow in C#