type lifting added