io/read-dataset now converts empty fields => nil, or user-supplied value...

....

Also, refactoring of the function for clarity.