Also can you break the type checking out into it's own function like:

```python
def _string_or_flavor(flav):
    isinstance(flav, string_types) or issubclass(flav, Flavor)
```