add 1.  bounds 2. bound_changed event listener
correct typo
mousedown, mousemove & mouseup -> simulate drag event
fixed infinite loop bug