```coffeescript
###
  Top module for Rubic (for Chrome App)
###

# Compatibility modules
require("compat/es7compat")
require("compat/bbjscompat")

# UI helpers
require("ui/bootbox-promise")

# Load main controller
require("controller/windowcontroller")  # Needed to solve circular dependency
$(->
  # Controller must be initiated after window.onload
  require("controller/maincontroller").instance.activate()
)

# Boards
require("board/peridotboard")
require("board/wakayamarbboard")
require("board/grcitrusboard")

# Engines
require("engine/mrubyengine")
require("engine/duktapeengine")
require("engine/luaengine")
require("engine/micropythonengine")

# Editors
require("editor/rubyeditor")
require("editor/mrbviewer")
require("editor/javascripteditor")
require("editor/coffeescripteditor")
require("editor/luaeditor")
require("editor/pythoneditor")
require("editor/yamleditor")

```

Initialize cache before activating first controller
user
```coffeescript
###
  Top module for Rubic (for Chrome App)
###

# Compatibility modules
require("compat/es7compat")
require("compat/bbjscompat")

# UI helpers
require("ui/bootbox-promise")

# Load main controller
require("controller/windowcontroller")  # Needed to solve circular dependency
$(->
  # Controller must be initiated after window.onload
  require("app/preferences").initCache().then(->
    require("controller/maincontroller").instance.activate()
  )
)

# Boards
require("board/peridotboard")
require("board/wakayamarbboard")
require("board/grcitrusboard")

# Engines
require("engine/mrubyengine")
require("engine/duktapeengine")
require("engine/luaengine")
require("engine/micropythonengine")

# Editors
require("editor/rubyeditor")
require("editor/mrbviewer")
require("editor/javascripteditor")
require("editor/coffeescripteditor")
require("editor/luaeditor")
require("editor/pythoneditor")
require("editor/yamleditor")

```
assistant