json (closes #22)