further d3 implementation