I answered in the GitHub issue. That said setup and delete function are basically constructor and destructors. Nim doesnt have the classic OOP features and automatic calls to base class constructors. Thus when subclassing you must make a direct call to the base class constructor (setup in nimqml). Same thing with destructors. I'm not saying that Is nice but that's how It works since nimqml uses inheritance. In future maybe i should rewrite nimqml using a composition design.