static public function bootstrap($root = '', $data_folder = '')
  {
    if (self::$is_init) { return self::$is_init; }

    if ($root != '') {
      self::$root_folder = $root;
    } else {
      throw new \Exception('Root folder must be setted.');
    }

    if ($data_folder != '') {
      self::$data_folder = self::$root_folder . '/' . $data_folder;
    } else {
      throw new \Exception('Data folder must be setted.');
    }

    // load the config file.
    self::$app = new DataApplication(self::$data_folder);

    // boot app.
    self::$is_init = true;

    // register the default render.
    self::$app->renders->register(new DefaultRender());
    self::$app->renders->register(new MarkdownRender());

    return self::$is_init;
  }