add generic transform mixin