innerclass template support