Abstract out trans logic