Fixes #187
- Cleaner separation of responsibilities in the code between scanning, parsing, compiling, and rendering functions. - Much faster