decent progress on #58 but still have an ugly circ-dep