* Adds proper TPL usage, decouples dependencies on Console and ClientBase, and uses string interpolation versus String.Format. * Renames private members to standard naming convention.