Reorganize code.
User require.js to load dependencies.
Allow tabs to be switched using dynamic hashable routes.