better division of labor between Source and its implementation
s/skip_token/skip
more uses of Source
rm debugging
somer more code reorg
impl of read_lines
discard last line if empty