recursively stringify and annotate

closes #1