Why is OO in .NET so silly?