         datatable.fnAddData(alldata)
         datatable.fnDraw()
 
-      dc.chartRegistry.list().forEach (chart) ->
-        chart.on "filtered", () ->
-          dc.events.trigger () ->
-            reloadTable()
-
       if exists
         reloadTable()
+      else
+        filterHandlers.push(reloadTable)
 
     # controller level map object
     map = null
 
     loadMap = (container, dim) ->
       id = "regionalDashMap"
-
-      if not $('#' + id).length
+      exists = $('#' + id).length > 0
+
+      if not exists
         e = $('<div id="' + id + '"></div>')
         $(container).append(e)
 

      table.fnAdjustColumnSizing()

    $scope.clearFilters = () ->
     dc.filterAll()
     dc.renderAll()

    setupCharts = (region) ->
      getData region, (data) ->


        loadDataTable("#dc-data-table", wards)
        loadMap("#wpLocations", wards)

        dc.chartRegistry.list().forEach (chart) ->
          chart.on "filtered", () ->
            # its important to throttle events here to prevent
            # countless needless redraws
            dc.events.trigger () ->
              onFilteredHandler()
            , 70

        dc.renderAll()

