groundwork for #23 and #26