Very good point.  However, I feel that passing a hash direct to the model (Toby's suggestion) is far more robust than using Open3 to hand around parsed data based on yet another intermediate file type, TSV in this case.  Can we devise a way to separate the parser from the model, like I've done, but without this namespace problem?