C# evolution