Y otra posibilidad interesante es implementarlo como una metaclase: