not perfect, but improvements to map events