* Support loading a file
* performing the reverse effect on a file
* write to file
* uses design specified in class diagram, but with very minor changes
  where necessary