The foundation of sire is a powerful C++ Property system. In this sytem, nearly every object derives from Property, and most objects are structured as dictionaries of arbitrary Property objects. This system is exposed to Python via a set of automatically-generated Py++ 24 / boost::python wrappers . Researchers using sire write Python scripts that can arbitrarily create and combine collections of Property-derived objects. A key set of these objects are those that comprise the molecular information engine in the sire.mol Python sub-module. The information that makes up a single molecule is held in a MoleculeData object (figure ). This information is divided into two parts; 1. MoleculeInfo. This gives the names of the atoms that make up the molecule, and (optionally) their arrangement into residues, chains and segments.