refactored generally useful higher level document IO methods to base class.