Refactored code to .NET 4.0 and added regions (yes I'm a region junkie)