/**
   * @param driver the web driver to use for the test
   * @param wait the implicit wait value for this run
   * @param waiter handles driver specific waits
   * @return always returns true
   */
  private boolean mothersNavigationExercise(
      final WebDriver driver, final long wait, final PageWaiter waiter) {
    try {
      driver.manage().timeouts().implicitlyWait(wait, TimeUnit.SECONDS);

      // Melissa
      PersonPage currentPerson = new PersonPage(driver, "I11", null, waiter);
      currentPerson.open();
      assertEquals("Person ID mismatch", "I11", currentPerson.getId());
      assertEquals("Person failed check", "", currentPerson.check());

      // Lisa
      currentPerson = currentPerson.navigateMother();
      assertEquals("Person ID mismatch", "I33", currentPerson.getId());
      assertEquals("Person failed check", "", currentPerson.check());

      // Estelle
      currentPerson = currentPerson.navigateMother();
      assertEquals("Person ID mismatch", "I117", currentPerson.getId());
      assertEquals("Person failed check", "", currentPerson.check());
    } finally {
      // Close the browser
      driver.quit();
    }
    return true;
  }