internally use ctor.mixin to mixin prototype