   state: null
   template: null
   app_events: null
+  selector: null
+  views: [] # sub-views
 
   initialize: ->
     _.bindAll @

  render: ->
    console.log "rendering view", @
    @_template = new Template(JST[ @tpl_path() ])
    $(@el).html(@_template.render(@))
    @

  # proxy for Stark.state#transition

      if ! (_.any(new_state.views, (n)-> v instanceof n) && _.any(new_state.no_redraw, (n)-> v instanceof n))
        # only dispose of view IF NOT required by new state
        console.log "disposing of", v
        v.dispose()

  bind_app_events: ->
    _.each @app_events, (cb, key) ->
