function loadMainDB(successCallback, errorCallback) {
  var query = parseURLQueryString(window.location.search);

  //new GEDCOMParser().loadFromURL(dataURL("mine.ged"), function(storage) {
  new LoadNativeJSON().loadFromURL(dataURL("mine.json"), function(storage) {
    storage.cache.crossref = new LoadCrossrefJSON(new RAMStorage());
    storage.cache.footnote = new LoadFootnoteJSON(new RAMStorage());
    storage.cache.annotation = new LoadBibleAnnotation(new RAMStorage(),
      dataURL("index/index-verses-content-%BOOKCODE%.json"),
      "indexSources");

    //loadJSONMergeFile(storage, dataURL("insight-book.en.extract.json"), function(objs, json) {
    //calculateEventTimes(storage, function() {}, errorCallback);
    loadJSONMergeFile(storage, dataURL("descr.json"), function(objs, json) {
      mergeDescrFromJSON(objs, json);
      var jesusbURL = query.editor ? "dummy" : dataURL("jesus-book.en.json");
      mergeAdditionalObjects(storage, jesusbURL, function() {
        successCallback(storage);
      }, function(e) {
        // if jesus book is not there, just continue
        successCallback(storage);
      });
    }, errorCallback);
  }, errorCallback);
}
