add type information, HOPE IT CAN IMPROVE THE PRECISION