In V10, there are many symbols named like "YadaYadaObject" Names["*`*Object"] // Length (* Out: 136 *) Are associations used under the hood for these, or is there another general mechanism by which *Mathematica* internally supports these new "objects". I've had a few ideas on how OOP should be implemented in MMA, but I never knew if there was a "preferred way" to do it.