For routine use, there is a high-level API, with each part being adaptable and encapsulated. The components of the optimization are contained within four base objects: a Molecule, Basis, Strategy, and Result. The latter three will be described in more detail shortly. The Molecule object contains all the basic information for the system (or systems) of interest; typically, this includes the coordinates, charge, multiplicity, and method to use. Any calculation can be run by passing a Molecule to the API, along with a Basis and any optional settings. For example, a traditional atomic basis set optimization could be achieved as presented in Listing 1.