private function make( $class_name, $named_arguments ) {
		$reflector   = new \ReflectionClass( $class_name );
		$constructor = $reflector->getConstructor();

		if ( is_subclass_of( $class_name, Singleton::class ) ) {
			return $class_name::get_instance();
		}

		if ( $reflector->isAbstract() ) {
			return null;
		}

		if ( null === $constructor ) {
			return new $class_name();
		}

		$dependencies = $this->get_dependencies( $constructor, $named_arguments );
		$obj          = $reflector->newInstanceArgs( $dependencies );

		// Handle special case of registering requests
		if ( $obj instanceof Request ) {
			$this->validators[] = $obj;
		}

		return $obj;
	}