makes `PointerEvent` a plain closure class, instead of trying to mimic a mouse event, which was required for the polyfill
refactoring, type annotations