add trans funtion