public function create($className, $parameters = [])
    {
        $reflectionClass = new \ReflectionClass($className);
        if (!$reflectionClass->hasMethod("__construct")) {
            //This class doesn't have a constructor
            return $reflectionClass->newInstanceWithoutConstructor();
        }
        if (!$reflectionClass->getMethod('__construct')->isPublic()) {
            throw new InjectorInvocationException(
                "Injector failed to create $className - constructor isn't public." .
                " Do you need to use a static factory method instead?"
            );
        }
        try {
            $parameters = $this->buildParameterArray(
                $this->inspector->getSignatureByReflectionClass($reflectionClass, "__construct"),
                $parameters
            );

            return $reflectionClass->newInstanceArgs($parameters);
        } catch (MissingRequiredParameterException $e) {
            throw new InjectorInvocationException(
                "Can't create $className " .
                " - __construct() missing parameter '" . $e->getParameterString() . "'" .
                " could not be found. Either register it as a service or pass it to create via parameters."
            );
        } catch (InjectorInvocationException $e) {
            //Wrap the exception stack for recursive calls to aid debugging
            throw new InjectorInvocationException(
                $e->getMessage() .
                PHP_EOL . " => (Called when creating $className)"
            );
        }
    }