Made changes suggested in PR #2082
* Naming changes at several places
* A bit of refactoring in utils.version to implement DRY pinciples
* Custom classes used in testing as opposed to monkey-patching