investigation shows that clientX/clientY is something that we can specify, and pageX/pageY is something calculated from that using a getter
removeEvent did not remove events when callback attribute was not passed
fix: clearEvents did not work. When removing elements from the array always loop in reverse order, otherwise you are skipping indexes!
add height to context menu test instances (so that it is always rendered event if below the visible window viewport)
comment out delegate registration which was not implemented in a way that allows removing of the delegate callback; do it properly or remove delegates functionality from here (I vote for the latter)