contractible map is equivalence
homomorphism into group product