poly morphism with unit + 3 classes