Add a wrapper for d3.event for conveniency
Refactor event APIs / implement drag behavior