tons of refactoring, add leaflet markercluster support, clean up coordinate handling