pull i/o from parsing fns; pull out format-as-poem into own fn