Moved the signature check inside the contains() virtual function