keep original line breaks and add support for ranges. closes #1. closes #82. closes #118