Have Indirect.Finalize() return the indirect object.
Use this to simplify some of the Finalize() calls.
Continue refactoring to improve support for reading existing files.
Rename Indirect.Finalize() to Write(); rename Page.Finalize() to Close().