public function getFactory(Specification $spec): Factory
    {
        if(!isset($this->factories[get_class($spec)])) {
            throw new \OutOfRangeException(sprintf(
                'Factory for Specification "%s" not registred',
                get_class($spec)
            ));
        }

        return $this->factories[get_class($spec)];
    }