public function install($val, $opts = null)
    {
        $this->id = isset($val['id']) ? $val['id'] : null;
        $this->opts = Util\Options::parse($opts);
        foreach ($val as $k => $v) {
            $this->values[$k] = Util\Util::arrayToObject($v);
        }
    }