public function node(string $node_id): Graph\NodeInterface
  {
    if(isset($this->node_cache[$node_id])) {
      return $this->node_cache[$node_id];
    }
    $query = (string) $node_id; // sprintf("node:%s", (string) $node_id);
    $node = $this->database->get($query);
    if(is_null($node)) {
      throw new Exceptions\NodeDoesNotExistException($node_id);
    }
    $node = unserialize($node);
    if(!$node instanceof Framework\ParticleInterface && !$node instanceof Foundation\World) {
      throw new Exceptions\NotANodeException($node_id);
    }
    $node->registerHandler(
            "set",
            \Pho\Kernel\Foundation\Handlers\Set::class
    );
    if($node instanceof Foundation\AbstractActor) {
        $node->registerHandler(
            "form",
            \Pho\Kernel\Foundation\Handlers\Form::class
        );
    }
    $node->init();
    $this->node_cache[$node_id] = $node;
    
    return $node;
  }