Added periodic saving.
Are the various Util.save() calls required?