new trans function drafted