rewrite web client to use leaflet