cleanup method signatures, delegate to native d3 methods where possible
use UIEvents for triggering. yeah, I know