added hasType()