why this mclass_t type?