       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?

    for t in tiles
      [x, y, z, bounds] = t
      if @_is_valid_tile(x, y, z)
        key = tile_source.tile_xyz_to_key(x, y, z)
        tile = tile_source.tiles[key]
        if tile? and tile.loaded == true
          cached.push(key)
        else
          if @mget('render_parents')
            [px, py, pz] = tile_source.get_closest_parent_by_tile_xyz(x, y, z)
            parent_key = tile_source.tile_xyz_to_key(px, py, pz)
            parent_tile = tile_source.tiles[parent_key]
            if parent_tile? and parent_tile.loaded and parent_key not in parents
              parents.push(parent_key)
            if zooming_out
              children = tile_source.children_by_tile_xyz(x, y, z)
              for c in children
                [cx, cy, cz, cbounds] = c
                child_key = tile_source.tile_xyz_to_key(cx, cy, cz)

                if child_key of tile_source.tiles
                  children.push(child_key)

        if not tile?
          need_load.push(t)

    # draw stand-in parents ----------
