separates application logic and state to avoid bidirectional dependencies
moves infoWindow field from global window object to the map view