now using opaque pointers in System class
added some member functions to abstractMoleculeGroup