docs: function (callback, initialHash) {
  
              var self = this,
                  fragment;
  
              this.$checkUrlFn = function () {
                  self.checkUrl.apply(self, arguments);
              };
  
              if (this.runsInBrowser()) {
                  // we're in a browser
  
                  if (this.$.useState) {
  
                      fragment = window.location.pathname;
                      fragment = fragment.replace(new RegExp("^" + (this.$.baseUrl || "")), "");
  
                      if (window.addEventListener) {
                          window.addEventListener('popstate', this.$checkUrlFn, false);
                      } else {
                          window.attachEvent('onpopstate', this.$checkUrlFn);
                      }
  
                  } else {
  
                      if ("onhashchange" in window) {
                          if (window.addEventListener) {
                              window.addEventListener('hashchange', this.$checkUrlFn, false);
                          } else {
                              window.attachEvent('onhashchange', this.$checkUrlFn);
                          }
                      } else {
                          // polling
                          this.$checkUrlInterval = setInterval(this.$checkUrlFn, this.$.interval);
                      }
                  }
  
  
              } else {
                  // rendering on node
                  this.$history.push(initialHash || "");
              }
  
              fragment = fragment || this._getFragment();
  
              this.navigate(fragment, false, true, true, callback);
              this.$processUrl = true;
          }