type, data and classes