John, would you redefine the macro or define similar ones that provide an init function with two parameters ? And where would you put these definitions. They should surely go to a central location. And should we mix the ones with one parameter and that with two depending on the use case ? I suppose in the current use case it would affect only G_DEFINE_TYPE_WITH_CODE which could be changed to G_DEFINE_TYPE_WITH_CODE_INIT_TWO_PARAMS.