public function getTable($alias)
    {
        // has factory ?
        if (isset($this->_table_factory[$alias])) return $this->_table_factory[$alias];

        $class_name = $this->config->getNamingStrategy()->aliasToTableClassName($alias);
        foreach ($this->config->getModelDirs() as $dir) {
            $class_full_name  = sprintf('%s\\%s', $dir['namespace'], $class_name);
            if (class_exists($class_full_name)) {
                $table = new $class_full_name($this);
                if ($container = $this->raikiri()) {
                    $table->setContainer($container);
                }
                $this->_table_factory[$alias] = $table;
                return $table;
            }
        }
        throw new Exception\EntityTableNotFoundException('no such table. -> ' . $alias);
    }