implement class types