Some commenting as well as implementing automatic settings saving and
loading