This allows for you to create converters that can have varying behaviour using the converter's __init__ instead of having to do a meta-class based approach to get around the fact that __init__ is part of the interface. To make up for the lack of __init__, a new method Converter.prepare was added to do the work that __init__ used to do.