import React, {createElement} from "react"
import ReactDOM from "react-dom"
const {h1} = require("hyperscript-helpers")(React.createElement)

const Welcome = (props) => h1(null, props.welcome)

ReactDOM.render(
  createElement(Welcome, {welcome: "Welcome to JavaScript Koans!"}),
  document.getElementById('app')
)

@@ -8,16 +8,27 @@
 React, %7B
+Component, 
 createEl
@@ -84,71 +84,221 @@
 om%22%0A
-const %7Bh1%7D = require(%22hyperscript-helpers%22)(React.createElement
+import %7BMap%7D from %22immutable%22%0Aconst %7Ba, input, div, h1, nav, p, span%7D = require(%22hyperscript-helpers%22)(React.createElement)%0A%0A%0Aconst NavBar = (%7Bnavs%7D) =%3E nav(null, navs.map(item =%3E a(%7Bhref: %22/#%22, key: item%7D, item))
 )%0A%0Ac
@@ -313,21 +313,25 @@
 come = (
-props
+%7Bwelcome%7D
 ) =%3E h1(
@@ -340,107 +340,1171 @@
 ll, 
-props.welcome)%0A%0AReactDOM.render(%0A  createElement(Welcome, %7Bwelcome: %22Welcome to JavaScript Koans!%22%7D
+welcome)%0A%0Aconst Feedback = (%7Bfeedback, hidden%7D) =%3E p(%7Bhidden%7D, feedback)%0A%0Aconst Koan = (%7Bkoan%7D) =%3E p(null, koan)%0A%0Aclass CodeInput extends Component %7B%0A  constructor (props) %7B%0A    super(props)%0A    this.state = %7B%0A      data: Map(%7Bcode: %22%22%7D)%0A    %7D%0A  %7D%0A  render () %7Breturn div(null,%0A               input(%7B%0A                 value: this.state.data.get(%22code%22),%0A                 placeholder: %22Fill in the code%22,%0A                 onChange: (event) =%3E %7B%0A                   let newVal = event.target.value%0A                   this.setState(state =%3E %7B%0A                     return %7B%0A                       data: state.data.update(%22code%22, () =%3E newVal)%7D%0A                   %7D)%0A                 %7D%0A               %7D),%0A      span(null, this.props.code)%0A    )%0A  %7D%0A%7D%0A%0Aclass App extends Component %7B%0A  render () %7B%0A    return div(%0A      null,%0A      createElement(Welcome, %7Bwelcome: %22Welcome to JavaScript Koans!%22%7D),%0A      createElement(NavBar, %7Bnavs: %5B1,2,3%5D%7D),%0A      createElement(Koan, %7Bkoan: %22Equality%22%7D),%0A      createElement(CodeInput, %7Bcode: %22 === 2%22%7D),%0A      createElement(Feedback, %7Bfeedback: %22That's right!%22, hidden: false%7D)%0A    )%0A  %7D%0A%7D%0A%0AReactDOM.render(%0A  createElement(App, null
 ),%0A 

add first draft