you should not typehint the implementation but the interface (coming from Doctrine Common)