mixin and metaclass