as far as I understand we need custom traits because of lacking of public constructor, right? if so, we'd better to provide public constructor :)