content: import Rx from 'rx';
  import React from 'react';
  import Fetchr from 'fetchr';
  import debugFactory from 'debug';
  import { Router } from 'react-router';
  import { history } from 'react-router/lib/BrowserHistory';
  import { hydrate } from 'thundercats';
  import { Render } from 'thundercats-react';
  
  import { app$ } from '../common/app';
  
  const debug = debugFactory('fcc:client');
  const DOMContianer = document.getElementById('fcc');
  const catState = window.__fcc__.data || {};
  const services = new Fetchr({
    xhrPath: '/services'
  });
  
  Rx.longStackSupport = !!debug.enabled;
  
  // returns an observable
  app$(history)
    .flatMap(
      ({ AppCat }) => {
        const appCat = AppCat(null, services);
        return hydrate(appCat, catState)
          .map(() => appCat);
      },
      ({ initialState }, appCat) => ({ initialState, appCat })
    )
    .flatMap(({ initialState, appCat }) => {
      return Render(
        appCat,
        React.createElement(Router, initialState),
        DOMContianer
      );
    })
    .subscribe(
      () => {
        debug('react rendered');
      },
      err => {
        debug('an error has occured', err.stack);
      },
      () => {
        debug('react closed subscription');
      }
    );
  