Fisher now properly remembers and restores data from a previous session.

Also added a few optimisations and comments.