     # keep track for disposing them later: off/on
     requestsWS: null
     responseTimesWS: null
+  demos: {}
   uiRoot: null
 
 logWith = (label) ->


init_ui = ->
  component = R.div {},
    RequestsWidget({})

  app.uiRoot = React.renderComponent(component, document.getElementById('app'));


      ws.send(data)
  Subject.create(observer, observable)

MouseMoveWidget = React.createClass
  getInitialState: ->
    startpos: {x: 0, y: 0}
    dx: 0
    dy: 0
    target: ''
  render: ->
      (R.div {style: {float: "right"}},
        [(R.h2 {}, "Mouse drag demo"),
        "start pos: #{@state.startpos.x} #{@state.startpos.y}",
        R.br {},
        "target: #{@state.target}",
        R.br {},
        "dx: #{@state.dx}",
        R.br {},
        "dy: #{@state.dy}",
        R.br {},
        ])

  componentWillMount: ->
    @subscription = app.events.mouseDemo.subscribe(@setState.bind(@))

  componentWillUnmount: ->
    @subscription.dispose()

RequestsWidget = React.createClass
  getInitialState: ->
    '1m':  '-'
