reimplement after broken by "take str per line instead of full inline iter" commit also resolves #18 and #34