based on d3.js and built by coffeescript