       alpha: 1.0
       x_range_name: "default"
       y_range_name: "default"
+      tile_source: new wmts.Model()
       render_parents: true
-      tile_source: new wmts.Model()
     }
 
   display_defaults: ->

    # draw cached ----------
    @_render_tiles(cached)
    for t in cached
      @mget('tile_source').tiles[t].current = true

    # fetch missing -------
    if @render_timer?

    @map_canvas.restore()

  _prefetch_tiles: () =>
    tile_source = @mget('tile_source')
    extent = @get_extent()
    h = @map_frame.get('height')
    w = @map_frame.get('width')
    zoom_level = @mget('tile_source').get_level_by_extent(extent, h, w)
    tiles = @mget('tile_source').get_tiles_by_extent(extent, zoom_level)
    for t in [0..Math.min(10, tiles.length)] by 1
      [x, y, z, bounds] = t
      children = @mget('tile_source').children_by_tile_xyz(x, y, z)
      for c in children
        [cx, cy, cz, cbounds] = c
        if tile_source.tile_xyz_to_key(cx, cy, cz) of tile_source.tiles
          continue
        else
          @_create_tile(cx, cy, cz, cbounds, true)
