Updated checks collection APIs used to get built in checks and README to reflect those changes and also some additional examples.
diff --git a/Classes/GTXChecksCollection.h b/Classes/GTXChecksCollection.h
index dd9b831..3f48a8a 100644
--- a/Classes/GTXChecksCollection.h
+++ b/Classes/GTXChecksCollection.h
@@ -18,77 +18,70 @@
 
 #import "GTXChecking.h"
 
-FOUNDATION_EXTERN NSString *const kGTXCheckNameAccessibilityLabelPresent;
-FOUNDATION_EXTERN NSString *const kGTXCheckNameAccessibilityLabelNotPunctuated;
-FOUNDATION_EXTERN NSString *const kGTXCheckNameAccessibilityTraitsDontConflict;
-FOUNDATION_EXTERN NSString *const kGTXCheckNameMinimumTappableArea;
-FOUNDATION_EXTERN NSString *const kGTXCheckNameMinimumContrastRatio;
-
 /**
- *  An enumeration of various versions of GTXSystems supported by GTX.
- *
- *  Ideally we would like everyone to use one stable version but since several users are using GTX
- *  and adding new checks can require work on part of those users - new checks for example, may
- *  expose new accessibility issues in those apps that will need to be fixed to get all tests to
- *  pass. Versions allow for easy development and deployment of those checks. All the users are on
- *  "stable" version and all new checks are developed under "latest" version when ready, the
- *  checks are moved into the "stable" version so that everyone gets it. Users can easily test (and
- *  debug/fix) their apps with latest checks by switching to the "latest" version.
+ Enum of all versions supported by GTXiLib.
  */
-typedef NS_ENUM(NSUInteger, GTXSystemVersion) {
+typedef NS_ENUM(NSUInteger, GTXVersion) {
+  /**
+   Placeholder enum for the latest version of GTX.
+   */
+  GTXVersionLatest,
 
   /**
-   *  The default version of checker uses all the latest *stable* checks.
+   Placeholder enum for the prerelease version of GTX.
    */
-  GTXSystemVersionStable = 0,
+  GTXVersionPreRelease,
 
   /**
-   *  The version of the checker that uses *all* the latest checks.
+   Enum for Version 0 of GTX.
    */
-  GTXSystemVersionLatest,
-
-  /**
-   *  A placeholder for determining maximum count of the versions available.
-   */
-  GTXSystemVersionMax,
+  GTXVersion_0,
 };
 
 /**
- *  Organizes all GTX checks supported by GTXSystem.
+ *  Organizes all checks provided by GTX, developers can use these as a starting point
+ *  for implementing their own checks. These checks are based on recommendations found in
+ *  "Accessibility Programming Guide for iOS"
+    @link https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/iPhoneAccessibility/Introduction/Introduction.html
+ *  and on WCAG.
  */
 @interface GTXChecksCollection : NSObject
 
 /**
+ *  @return An array of all supported GTXChecks for the given @c version.
+ */
++ (NSArray<GTXChecking> *)allChecksForVersion:(GTXVersion)version;
+
+/**
  *  @return An array of all supported GTXChecks.
  */
-+ (NSArray *)allGTXChecks;
++ (NSArray<GTXChecking> *)allGTXChecks;
 
 /**
- *  @return An array of GTXChecks under the given version.
+ *  @return a check that verifies that accessibility label is present on all accessibility elements.
  */
-+ (NSArray *)checksWithVersion:(GTXSystemVersion)version;
++ (id<GTXChecking>)checkForAXLabelPresent;
 
 /**
- *  The GTX check instance that has the specified @c name, or @c nil if no such check exists.
- *
- *  @param name The name of the GTX check.
- *
- *  @return The GTX check instance that has the specified @c name.
+ *  @return a check that verifies that accessibility labels are not punctuated as recommended by
+ *  "Accessibility Programming Guide for iOS" (see class docs).
  */
-+ (id<GTXChecking>)GTXCheckWithName:(NSString *)name;
++ (id<GTXChecking>)checkForAXLabelNotPunctuated;
 
 /**
- *  Registers the provided check and makes it available to all @c GTXSystem objects.
- *
- *  @param check The check to be registered, must conform to @c GTXChecking protocol.
+ *  @return a check that verifies that accessibility traits dont conflict with each other as
+ *  recommended by "Accessibility Programming Guide for iOS" (see class docs).
  */
-+ (void)registerCheck:(id<GTXChecking>)check;
++ (id<GTXChecking>)checkForAXTraitDontConflict;
 
 /**
- *  Deregisters a previously registered check.
- *
- *  @param checkName The name of the check to be unregistered.
+ *  @return a check that verifies that tappable areas of all buttons are at least 48X48 points.
  */
-+ (void)deRegisterCheck:(NSString *)checkName;
++ (id<GTXChecking>)checkForMinimumTappableArea;
+
+/**
+ *  @return a check that verifies that contrast of all text based elements is at least 3.0.
+ */
++ (id<GTXChecking>)checkForSufficientContrastRatio;
 
 @end
diff --git a/Classes/GTXChecksCollection.m b/Classes/GTXChecksCollection.m
index 0d16fe8..47cf6a9 100644
--- a/Classes/GTXChecksCollection.m
+++ b/Classes/GTXChecksCollection.m
@@ -34,8 +34,7 @@
 #pragma mark - Globals
 
 /**
- *  The minimum size (width or height) for a given element to be accessible as per iOS Accessibility
- *  standards. For more info see go/ios-gtx-touch-target-ref.
+ *  The minimum size (width or height) for a given element to be easily accessible.
  */
 static const float kMinSizeForAccessibleElements = 48.0;
 
@@ -45,104 +44,29 @@
  */
 static const float kMinContrastRatioForAccessibleText = 3.0;
 
-/**
- *  A global array of dictionaries mapping default GTX check names to their instances.
- */
-NSArray *gGTXBuiltInChecks;
-
-/**
- *  A global dictionary mapping custom GTX check names to their instances.
- */
-NSMutableDictionary *gGTXCustomChecks;
-
 #pragma mark - Implementations
 
 @implementation GTXChecksCollection
 
-+ (NSArray *)gGTXDefaultChecks {
-  static dispatch_once_t onceToken;
-  dispatch_once(&onceToken, ^{
-    NSMutableArray *mutableBuiltInChecks = [[NSMutableArray alloc] init];
-    for (NSUInteger i = 0; i < GTXSystemVersionMax; i++) {
-      [mutableBuiltInChecks addObject:[[NSMutableDictionary alloc] init]];
-    }
-    gGTXBuiltInChecks = mutableBuiltInChecks;
-  });
-  return gGTXBuiltInChecks;
-}
-
-+ (NSMutableDictionary *)gGTXCustomChecks {
-  static dispatch_once_t onceToken;
-  dispatch_once(&onceToken, ^{
-    gGTXCustomChecks = [[NSMutableDictionary alloc] init];
-  });
-  return gGTXCustomChecks;
-}
-
-+ (NSArray *)checksWithVersion:(GTXSystemVersion)version {
-  static dispatch_once_t onceToken;
-  dispatch_once(&onceToken, ^{
-    // Register the default checks.
-    // GTXSystemVersionLatest will have *all* checks.
-    [self registerDefaultCheck:[self GTXCheckForAXLabelPresent]
-                    forVersion:GTXSystemVersionLatest];
-    [self registerDefaultCheck:[self GTXCheckForAXLabelNotPunctuated]
-                    forVersion:GTXSystemVersionLatest];
-    [self registerDefaultCheck:[self GTXCheckForAXTraitDontConflict]
-                    forVersion:GTXSystemVersionLatest];
-    [self registerDefaultCheck:[self GTXCheckForMinimumTappableArea]
-                    forVersion:GTXSystemVersionLatest];
-    [self registerDefaultCheck:[self GTXCheckForContrastRatio]
-                    forVersion:GTXSystemVersionLatest];
-
-    // GTXSystemVersionStable currently has the following checks.
-    [self registerDefaultCheck:[self GTXCheckForAXLabelPresent]
-                    forVersion:GTXSystemVersionStable];
-    [self registerDefaultCheck:[self GTXCheckForAXLabelNotPunctuated]
-                    forVersion:GTXSystemVersionStable];
-    [self registerDefaultCheck:[self GTXCheckForAXTraitDontConflict]
-                    forVersion:GTXSystemVersionStable];
-  });
-  NSArray *defaultChecks = [[self gGTXDefaultChecks][version] allValues];
-  NSArray *customChecks = [[self gGTXCustomChecks] allValues];
-  return [defaultChecks arrayByAddingObjectsFromArray:customChecks];
-}
-
-+ (NSArray *)allGTXChecks {
-  return [self checksWithVersion:GTXSystemVersionLatest];
-}
-
-+ (id<GTXChecking>)GTXCheckWithName:(NSString *)name {
-  for (id<GTXChecking> check in [self allGTXChecks]) {
-    if ([name isEqualToString:[check name]]) {
-      return check;
-    }
++ (NSArray<GTXChecking> *)allChecksForVersion:(GTXVersion)version {
+  switch (version) {
+    case GTXVersionLatest: return [self allGTXChecks];
+    case GTXVersionPreRelease: return [self allGTXChecks];
+    case GTXVersion_0: return [self allGTXChecks];
   }
-  return nil;
 }
 
-+ (void)registerDefaultCheck:(id<GTXChecking>)check forVersion:(GTXSystemVersion)version {
-  NSMutableDictionary *defaultChecks = [self gGTXDefaultChecks][version];
-  NSAssert(!defaultChecks[[check name]],
-           @"GtxCheck with name %@ already registered.", [check name]);
-  defaultChecks[[check name]] = check;
-}
-
-+ (void)registerCheck:(id<GTXChecking>)check {
-  NSAssert(![self gGTXCustomChecks][[check name]],
-           @"GtxCheck with name %@ already registered.", [check name]);
-  [self gGTXCustomChecks][[check name]] = check;
-}
-
-+ (void)deRegisterCheck:(NSString *)checkName {
-  NSAssert([self gGTXCustomChecks][checkName],
-           @"GtxCheck with name %@ was not registered.", checkName);
-  [[self gGTXCustomChecks] removeObjectForKey:checkName];
++ (NSArray<id<GTXChecking>> *)allGTXChecks {
+  return @[[self checkForAXLabelPresent],
+           [self checkForAXLabelNotPunctuated],
+           [self checkForAXTraitDontConflict],
+           [self checkForMinimumTappableArea],
+           [self checkForSufficientContrastRatio]];
 }
 
 #pragma mark - GTXChecks
 
-+ (id<GTXChecking>)GTXCheckForAXLabelPresent {
++ (id<GTXChecking>)checkForAXLabelPresent {
   id<GTXChecking> check = [GTXCheckBlock GTXCheckWithName:kGTXCheckNameAccessibilityLabelPresent
                                    block:^BOOL(id element, GTXErrorRefType errorOrNil) {
     if ([self gtx_isTextDisplayingElement:element]) {
@@ -174,7 +98,7 @@
   return check;
 }
 
-+ (id<GTXChecking>)GTXCheckForAXLabelNotPunctuated {
++ (id<GTXChecking>)checkForAXLabelNotPunctuated {
   id<GTXChecking> check =
       [GTXCheckBlock GTXCheckWithName:kGTXCheckNameAccessibilityLabelNotPunctuated
                                 block:^BOOL(id element, GTXErrorRefType errorOrNil) {
@@ -217,7 +141,7 @@
   return check;
 }
 
-+ (id<GTXChecking>)GTXCheckForAXTraitDontConflict {
++ (id<GTXChecking>)checkForAXTraitDontConflict {
   id<GTXChecking> check =
       [GTXCheckBlock GTXCheckWithName:kGTXCheckNameAccessibilityTraitsDontConflict
                                 block:^BOOL(id element, GTXErrorRefType errorOrNil) {
@@ -265,7 +189,7 @@
   return check;
 }
 
-+ (id<GTXChecking>)GTXCheckForMinimumTappableArea {
++ (id<GTXChecking>)checkForMinimumTappableArea {
   id<GTXChecking> check =
       [GTXCheckBlock GTXCheckWithName:kGTXCheckNameMinimumTappableArea
                                 block:^BOOL(id element, GTXErrorRefType errorOrNil) {
@@ -311,7 +235,7 @@
   return check;
 }
 
-+ (id<GTXChecking>)GTXCheckForContrastRatio {
++ (id<GTXChecking>)checkForSufficientContrastRatio {
   id<GTXChecking> check =
       [GTXCheckBlock GTXCheckWithName:kGTXCheckNameMinimumContrastRatio
                                 block:^BOOL(id element, GTXErrorRefType errorOrNil) {
@@ -337,7 +261,6 @@
   return check;
 }
 
-
 #pragma mark - Private
 
 /**
diff --git a/Classes/GTXiLibCore.m b/Classes/GTXiLibCore.m
index 763ac29..68858c0 100644
--- a/Classes/GTXiLibCore.m
+++ b/Classes/GTXiLibCore.m
@@ -173,7 +173,7 @@
 }
 
 /**
- Executes the currently installed checks on the all elements of the accessibility tree under the
+ Executes the currently installed checks on all the elements of the accessibility tree under the
  given root elements. In case of failures, the failure handler is invoked.
 
  @param rootElements An array of root elements.
diff --git a/FrameworkFiles/Info.plist b/FrameworkFiles/Info.plist
index 1007fd9..c4c0fdd 100644
--- a/FrameworkFiles/Info.plist
+++ b/FrameworkFiles/Info.plist
@@ -2,23 +2,23 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>$(DEVELOPMENT_LANGUAGE)</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>$(PRODUCT_NAME)</string>
-	<key>CFBundlePackageType</key>
-	<string>FMWK</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleVersion</key>
-	<string>$(CURRENT_PROJECT_VERSION)</string>
-	<key>NSPrincipalClass</key>
-	<string></string>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>$(DEVELOPMENT_LANGUAGE)</string>
+  <key>CFBundleExecutable</key>
+  <string>$(EXECUTABLE_NAME)</string>
+  <key>CFBundleIdentifier</key>
+  <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>$(PRODUCT_NAME)</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>1.0</string>
+  <key>CFBundleVersion</key>
+  <string>$(CURRENT_PROJECT_VERSION)</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
 </dict>
 </plist>
diff --git a/README.md b/README.md
index a477aaf..0672ac7 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,13 @@
 ## What is GTXiLib?
 GTXiLib, Google Toolbox for Accessibility for the iOS platform or simply GTX-eye
-is a framework for iOS accessibility testing. GTXiLib has XCTest integration and can be used with any XCTest based
-frameworks such as [EarlGrey](https://github.com/google/EarlGrey). GTXiLib enhances the value of your tests by installing "accessibility checks"
-on them, your existing test cases can double as accessibility tests with
-no other code change on your part. GTXiLib is able to accomplish this by
-hooking into the test tear down process and invoking the registered
-accessibility checks (such as check for presence of accessibility label) on
-all elements on the screen.
+is a framework for iOS accessibility testing. GTXiLib has XCTest integration and
+can be used with any XCTest based frameworks such as
+[EarlGrey](https://github.com/google/EarlGrey). GTXiLib enhances the value of
+your tests by installing "accessibility checks" on them, your existing test
+cases can double as accessibility tests with no other code change on your part.
+GTXiLib is able to accomplish this by hooking into the test tear down process
+and invoking the registered accessibility checks (such as check for presence of
+accessibility label) on all elements on the screen.
 
 ## Getting Started
 
@@ -15,7 +16,7 @@
 
 ```
 // Include the GTXiLib umbrella header.
-#import <GTXiLib/GTXiLib.h>
+
 
 // Note that that is +setUp not -setUp
 + (void)setUp {
@@ -23,19 +24,54 @@
 
   // ... your other setup code (if any) comes here.
 
+  // Create an array of checks to be installed.
+  NSArray *checksToBeInstalled = @[
+      [GTXChecksCollection checkForAXLabelPresent]
+  ];
+
   // Install GTX on all tests in *this* test class.
   [GTXiLib installOnTestSuite:[GTXTestSuite suiteWithAllTestsInClass:self]
-                       checks:[GTXChecksCollection allGTXChecks]
+                       checks:checksToBeInstalled
             elementBlacklists:@[]];
 }
 ```
 
 Once installed, GTX will run all registered accessibility checks before test
-case tearDown and fail the test if any accessibility checks fail. Note that code
-is being added to `+setUp` method not the instance method `-setUp` since GTX
-must only be installed once (for a given test run).
+case tearDown and fail the test if any accessibility checks fail. With the above
+snippet of code your tests will now begin to catch issues where you have added
+UI elements to your app but forgot to set accessibility labels on them.
 
-To Add GTXiLib to your project use the xcodeproj file in this project or
+In the above snippet we have only installed `checkForAXLabelPresent`, but you
+can also install multiple checks from GTXChecksCollection or include your own
+custom checks as well:
+
+```
+// Inside +setUp ...
+// Create a new check (for example that ensures that all AX label is not an image name)
+id<GTXChecking> myNewCheck =
+    [GTXCheckBlock GTXCheckWithName:@"AXlabel is not image name"
+                              block:^BOOL(id element, GTXErrorRefType errorPtr) {
+    // Ensure accessibilityLabel does not end with .png
+    return ![[element accessibilityLabel] hasSuffix:@".png"];
+  }];
+
+// Create an array of checks to be installed.
+NSArray *checksToBeInstalled = @[
+    [GTXChecksCollection checkForAXLabelPresent],
+    [GTXChecksCollection checkForAXTraitDontConflict],
+    myNewCheck,
+];
+
+// Install GTX on all tests in *this* test class.
+[GTXiLib installOnTestSuite:[GTXTestSuite suiteWithAllTestsInClass:self]
+                     checks:checksToBeInstalled
+          elementBlacklists:@[]];
+```
+
+Note that GTX is being added to `+setUp` method, not the instance method
+`-setUp` since GTX must only be installed once (for a given test run).
+
+To add GTXiLib to your project use the xcodeproj file in this project or
 [cocoapods](https://cocoapods.org/pods/GTXiLib).
 
 ## Incremental Accessibility
@@ -109,4 +145,15 @@
 [GTXAnalytics setEnabled:NO];
 ```
 
+## Discuss
+
+Please join us on [ios-accessibility](https://groups.google.com/forum/#!forum/ios-accessibility)
+Google group to discuss all things accessibility and also to keep a tap on all
+updates to GTXiLib.
+
+## Contributors
+
+Please make sure you’ve followed the guidelines in
+[CONTRIBUTING.md](./CONTRIBUTING.md) before making any contributions.
+
 *Note: This is not an official Google product.*
diff --git a/Tests/UnitTests/GTXChecksCollectionTests.m b/Tests/UnitTests/GTXChecksCollectionTests.m
index 39c445c..5c359f0 100644
--- a/Tests/UnitTests/GTXChecksCollectionTests.m
+++ b/Tests/UnitTests/GTXChecksCollectionTests.m
@@ -28,44 +28,44 @@
 
 - (void)testGtxCheckForAXLabelNotPunctuated {
   // Valid label.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithLabel:@"foo"]
            errorDescription:nil];
   // Empty label.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithLabel:@""]
            errorDescription:nil];
   // nil label.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithLabel:nil]
            errorDescription:nil];
   // Label ending in period.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:@"foo."]
            errorDescription:kExpectedErrorDescription];
   // Label ending in period with trailing space.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:@"foo. "]
            errorDescription:kExpectedErrorDescription];
   // Single character label ending in period.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:@"f."]
            errorDescription:kExpectedErrorDescription];
   // Single character label with just period.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:@"."]
            errorDescription:kExpectedErrorDescription];
   // UILabel with text ending in period must pass.
   UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
   label.text = @"foo.";
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:YES
                 withElement:label
            errorDescription:kExpectedErrorDescription];
@@ -73,13 +73,13 @@
 
 - (void)testGtxCheckForAXLabelNotPunctuatedWorksWithAttributedStrings {
   id accessibilityLabel = [[NSAttributedString alloc] initWithString:@"foo"];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithLabel:accessibilityLabel]
            errorDescription:nil];
 
   accessibilityLabel = [[NSAttributedString alloc] initWithString:@"foo."];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:accessibilityLabel]
            errorDescription:kExpectedErrorDescription];
@@ -87,13 +87,13 @@
 
 - (void)testGtxCheckForAXLabelNotPunctuatedWorksWithMutableStrings {
   id accessibilityLabel = [NSMutableString stringWithString:@"foo"];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithLabel:accessibilityLabel]
            errorDescription:nil];
 
   accessibilityLabel = [NSMutableString stringWithString:@"foo."];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelNotPunctuated
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelNotPunctuated]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:accessibilityLabel]
            errorDescription:kExpectedErrorDescription];
@@ -102,43 +102,43 @@
 - (void)testGtxCheckForAXLabelPresent {
   NSString * const expectedErrorDescription = @"Check \"Accessibility Label Present\" failed";
   // Valid label.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithLabel:@"foo"]
            errorDescription:nil];
   // Label with just space.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:@" "]
            errorDescription:expectedErrorDescription];
   // Empty string label.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:@""]
            errorDescription:expectedErrorDescription];
   // Element with no label.
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithLabel:nil]
            errorDescription:expectedErrorDescription];
 }
 
 - (void)testGtxCheckForAXLabelPresentWorksForTextElementsWithNotText {
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:YES
                 withElement:[[UILabel alloc] initWithFrame:CGRectZero]
            errorDescription:nil];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:YES
                 withElement:[[UITextField alloc] initWithFrame:CGRectZero]
            errorDescription:nil];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:YES
                 withElement:[[UITextView alloc] initWithFrame:CGRectZero]
            errorDescription:nil];
   UIAccessibilityElement *textElement = [self uiAccessibilityElementWithLabel:@""];
   textElement.accessibilityTraits = UIAccessibilityTraitStaticText;
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:YES
                 withElement:textElement
            errorDescription:nil];
@@ -146,7 +146,7 @@
 
 - (void)testGtxCheckForAXLabelPresentWorksWithAttributedStrings {
   id accessibilityLabel = [[NSAttributedString alloc] initWithString:@"foo"];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithLabel:accessibilityLabel]
            errorDescription:nil];
@@ -154,7 +154,7 @@
 
 - (void)testGtxCheckForAXLabelPresentWorksWithMutableStrings {
   id accessibilityLabel = [NSMutableString stringWithString:@"foo"];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityLabelPresent
+  [self assertGtxCheck:[GTXChecksCollection checkForAXLabelPresent]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithLabel:accessibilityLabel]
            errorDescription:nil];
@@ -164,23 +164,23 @@
   NSString * const expectedErrorDescription =
       @"Check \"Accessibility Traits Don't Conflict\" failed";
   // Check for a valid trait (in valid range, no conflict).
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityTraitsDontConflict
+  [self assertGtxCheck:[GTXChecksCollection checkForAXTraitDontConflict]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithTraits:UIAccessibilityTraitButton]
            errorDescription:nil];
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityTraitsDontConflict
+  [self assertGtxCheck:[GTXChecksCollection checkForAXTraitDontConflict]
                    succeeds:YES
                 withElement:[self uiAccessibilityElementWithTraits:
                              (UIAccessibilityTraitLink | UIAccessibilityTraitAdjustable)]
            errorDescription:nil];
   // Check for conflict rule no.1 (conflict among button, link, search field, keyboard key).
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityTraitsDontConflict
+  [self assertGtxCheck:[GTXChecksCollection checkForAXTraitDontConflict]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithTraits:
                              (UIAccessibilityTraitKeyboardKey | UIAccessibilityTraitSearchField)]
            errorDescription:expectedErrorDescription];
   // Check for conflict rule no.2 (conflict between button and adjustable (slider)).
-  [self assertGtxCheckNamed:kGTXCheckNameAccessibilityTraitsDontConflict
+  [self assertGtxCheck:[GTXChecksCollection checkForAXTraitDontConflict]
                    succeeds:NO
                 withElement:[self uiAccessibilityElementWithTraits:
                              (UIAccessibilityTraitAdjustable | UIAccessibilityTraitButton)]
@@ -215,19 +215,18 @@
 }
 
 /**
- *  Asserts that the named GTXCheck succeeds or fails with the specified element.
+ *  Asserts that the given GTXCheck succeeds or fails with the specified element.
  *
- *  @param name             The name of the check.
+ *  @param check            The check to be tested.
  *  @param expectedSuccess  A BOOL indicating if the check must succeed or not.
  *  @param element          The element on which to apply the check.
  *  @param descriptionOrNil An optional expected error description if the check is expected to fail
  *                          and the error description must also be verified.
  */
-- (void)assertGtxCheckNamed:(NSString *)name
+- (void)assertGtxCheck:(id<GTXChecking>)gtxCheck
                    succeeds:(BOOL)expectedSuccess
                 withElement:(id)element
            errorDescription:(nullable NSString *)descriptionOrNil {
-  id<GTXChecking> gtxCheck = [GTXChecksCollection GTXCheckWithName:name];
   NSError *error = nil;
   BOOL success = [gtxCheck check:element error:&error];
   XCTAssertEqual(success, expectedSuccess);
@@ -236,7 +235,8 @@
   } else {
     XCTAssertNotNil(error);
     XCTAssertTrue([[error description] containsString:descriptionOrNil],
-                  @"%@ was not present in %@", descriptionOrNil, [error description]);
+                  @"[Expected] was not present in [Actual]!\n Expected: %@\n Actual: %@",
+                  descriptionOrNil, [error description]);
   }
 }