@Override
  public void dispose() {
    super.dispose();

    if (this.listener != null) {
      for (VersionCompatibilityService service : this.services) {
        service.detach(this.listener);
      }
    }
  }