refactor and add d3 timeline lib