Major refactor to use `React.createClass` API instead of react internals