(feat) add d3