Clean Coding in C# - Part I