public function set($id, $value)
    {
        if (isset($this->requested[$id])) {
            throw new ContainerRuntimeException(
                'Container identifier[' . $id . '] is already set and has been requested.'
            );
        }
        if (is_callable($value)) {
            $this->callables[$id] = $value;
        } else {
            $this->values[$id] = $value;
        }
        $this->keys[$id] = true;
    }