add mixin and its tests