Why it needs to know how the object was created? It just accepts it and checks if it's an instance implementing PSR interface. If yes then it works with it, if no, throws an exception.