C# Advanced 2: Generic Tree Madness