This is now yelling abstract class pattern:     - have an abstract method on Widget called `client_code()` - which all Widget implementors have to implement  - move the `generate_html_file` method to Widget, which will call this abstract method