Exploring implementation of C# 4.0 Default and Optional args