add multi inherit support