https://9dok.net/document/yev6rkk0-exercise-introductiontojml-practicesheet-advancedaspectsofobject-orientedprogramming-ss.html