public function set(string $name, $value): void
    {
        if (isset($this->active[$name])) {
            throw new InvalidArgumentException("Attempted override of existing component: {$name}");
        }

        $this->values[$name] = $value;

        unset(
            $this->factory[$name],
            $this->factoryMap[$name],
            $this->alias[$name]
        );

        $this->removeAbstractAlias($name);
    }