add trans func