private void init() {
    try {
      Mongo m = new Mongo(mongoHost, mongoPort);
      DB db = m.getDB("mtg");
      db.authenticate("mtg", "mtg".toCharArray());
      cardCollection = db.getCollection(collectionName);

      graphDb = new RestGraphDatabase(HEROKU_NEO4J, herokuUser, herokuPassword);
      Iterable<Node> allNodes = graphDb.getAllNodes();
      Iterator<Node> it = allNodes.iterator();
      while (it.hasNext()) {
        Node node = it.next();
        if (node.hasProperty("name")) {
          cardNodes.put(node.getProperty("name").toString(), node);
        }
      }
      System.out.println("There are " + cardNodes.size() + " card nodes");
      registerShutdownHook(graphDb);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }