finished d1.js