refactor trans_block