better mouse event scheme