breaks d3 library api, but enhances part of it, will iterate the rest later