unified metaclasses