update mixins and low-level code for separate-trans
tested and working separate trans
Merge branch 'separate-trans'