Object Oriented, Test Driven Design in C# and Java: A Practical Example Part #1