Joe Bergeron | Interfaces and Metaclasses in Python