add mixin and exntend