retuns false for unchanged