congruence methods implemented