public function register($name, $instance)
    {
        if (!is_string($name)) {
            throw new InvalidArgumentException(sprintf(
                'Argument #1 $name must be a string, received "%s"', gettype($name)
            ));
        }

        $this->container[$name] = $instance;
        return $this;
    }