add mixin.extend
add test