   sgfObject or= smartgame.parse(getInputSgf() or '(;SZ[19])')
   size = parseInt(sgfObject.gameTrees[0].nodes[0].SZ, 10) or 19
 
-  $scoreBlock = createScoringDom()
   $navBlock = createNavigationDom sgfObject
   $('#board').empty()
-  React.render (React.createElement BoardDom, size: size,
-                                              sgfObject: sgfObject),
+  React.render (React.createElement BoardAreaDom, {sgfObject: sgfObject}),
                $('#board')[0]
-  $('#board').append($elem) for $elem in [$navBlock, $scoreBlock]
-  # setupState sgfObject
+  $('#board').append($elem) for $elem in [$navBlock]
   return
+
+BoardAreaDom = React.createClass
+  render: ->
+    {boardState, lastPlayed, prisoners} = stateFromSgfObject @props.sgfObject
+    size = parseInt(@props.sgfObject.gameTrees[0].nodes[0].SZ, 10) or 19
+
+    {div} = React.DOM
+    div {},
+        [(React.createElement BoardDom, boardState: boardState, size: size),
+         (React.createElement ScoreDom, prisoners: prisoners)]
 
 BoardDom = React.createClass
   render: ->
-    sgfObject = smartgame.parse(getInputSgf() or '(;SZ[19])')
-    {boardState, lastPlayed, prisoners} = stateFromSgfObject sgfObject
+    {boardState, size} = @props
 
     {div} = React.DOM
     topVert = div {className: "board_line board_line_vertical"}

    blackStone = div {className: "stone black"}
    whiteStone = div {className: "stone white"}

    size = this.props.size

    boardDivsForPos = (i, j) ->
      result = []
      if j > 0 then result.push topVert


  If 'moves' is given as an option, include only that many moves."
  {boardState, lastPlayed, prisoners} = stateFromSgfObject sgfObject, options
  updateBoard boardState
  if lastPlayed.x? and lastPlayed.y?
    setLastPlayed ($pointAt lastPlayed.x, lastPlayed.y)
  else
