reworking the map view to support layer binding