Does JS have OO capabilities?  It seems like some the verbose monotony of  mousePressEvent() could be eliminated with clickedOverlay.handleMousePress(x, y).

Just wondering.  This question doesn't block the merge.