refactor part 2/2

@bellycard/infrastructure 
More refactor.  More tests.
i view them as separate because we need to a make different decisions from them.  If we combine the two, we'll have a join into a string here, then a parse in jockey.