Extraction as inner classes of the listeners of our functionality, which
are implemented as anonymous classes, and also to the extraction of
methods separating view changes from model(in this case persistence).
This change enables the identification of  the behaviour that the model
should provide along with the concepts that represents the model