add trans2 to seperate some code