learned Pro C# chapter 8