new typename system