The interaction between all classes is as follows :

The program is run when DivisorCount new is typed. This means that everything should be able to be done after this is typed. This requires a new method which declares all variables and calls the boxes, as will be done in the programming part.

Initialization

DivisorCount and IntegerCount will be initialized to 0. When reset is invoked, all all of the values will be re-initialized to 0. Reset will work in such a way that it will be called by DivisorCount, which will send reset messages to oddCount and evenCount. The initialize function of DivisorCount will reset all these values when DivisorCount new is called.