And of course moving from XPCOM to a more direct smart pointer implementation, and various other stages along the way.