factored out Map and DensityMap to maps