```
The structure of both DATA_HASH_TABLE and FIELD_HASH_TABLE objects are
-identical. They implement a simple hash table, which each cell containing
+identical. They implement a simple hash table, with each cell containing
offsets to the head and tail of the singly linked list of the DATA and FIELD
objects, respectively. DATA's and FIELD's next_hash_offset field are used to
chain up the objects. Empty cells have both offsets set to 0.
### Writing
-When an entry is appended to the journal for each of its data fields the data
-hash table should be checked. If the data field does not yet exist in the file
-it should be appended and added to the data hash table. When a field data
-object is added the field hash table should be checked for the field name of
+When an entry is appended to the journal, for each of its data fields the data
+hash table should be checked. If the data field does not yet exist in the file,
+it should be appended and added to the data hash table. When a data field's data
+object is added, the field hash table should be checked for the field name of
the data field, and a field object be added if necessary. After all data fields
(and recursively all field names) of the new entry are appended and linked up
-in the hashtables the entry object should be appended and linked up too.
+in the hashtables, the entry object should be appended and linked up too.
-In regular intervals a tag object should be written if sealing is enabled (see
+At regular intervals a tag object should be written if sealing is enabled (see
above). Before the file is closed a tag should be written too, to seal it off.
Before writing an object, time and disk space limits should be checked and