public function make(string $name, array $params = null)
	{
		if (isset($this->bindings[$name]))
			return $this->bindings[$name];

		//	cached constructor lists
		static $constructors = null;

		if (isset($constructors[$name])) {
			$constructor = $constructors[$name];
		}
		else {
			$constructors[$name] = $constructor = method_exists($name, '__construct') ? new \ReflectionMethod($name, '__construct') : null;
		}

		return $constructor ?
				(new \ReflectionClass($name))->newInstanceArgs($this->_buildArgList($constructor, $params)) :
				(new \ReflectionClass($name))->newInstance();
	}