d3: #20 item 3; groundwork for #25