ExtensionMethods, OOP Principles I & II, Common Type System