Refactoring

Commenting and extracting methods mostly. Also changed the saver to a
singleton.