Changes as per review feedback.

Added progress bar.
Made some formatting improvements.
Added persistence support using an ORM