diff --git a/app/collections/ComponentsCollection.coffee b/app/collections/ComponentsCollection.coffee
new file mode 100644
index 000000000..d5b2d4837
--- /dev/null
+++ b/app/collections/ComponentsCollection.coffee
@@ -0,0 +1,7 @@
+LevelComponent = require 'models/LevelComponent'
+CocoCollection = require 'models/CocoCollection'
+
+module.exports = class ComponentsCollection extends CocoCollection
+  url: '/db/level_component/search'
+  model: LevelComponent
+
diff --git a/app/lib/world/world.coffee b/app/lib/world/world.coffee
index 1d5b2ee34..f90b79b58 100644
--- a/app/lib/world/world.coffee
+++ b/app/lib/world/world.coffee
@@ -221,7 +221,7 @@ module.exports = class World
     channel = 'world:' + channel
     for script in @scripts
       continue if script.channel isnt channel
-      scriptNote = new WorldScriptNote script, event, world
+      scriptNote = new WorldScriptNote script, event
       continue if scriptNote.invalid
       @scriptNotes.push scriptNote
     return unless @goalManager
diff --git a/app/views/editor/component/versions.coffee b/app/views/editor/component/versions.coffee
index a0638e26e..7305c29c5 100755
--- a/app/views/editor/component/versions.coffee
+++ b/app/views/editor/component/versions.coffee
@@ -2,8 +2,8 @@ VersionsView = require 'views/kinds/VersionsView'
 
 module.exports = class SuperVersionsView extends VersionsView
   id: "editor-component-versions-view"
-  url: "/db/component/"
+  url: "/db/level.component/"
   page: "component"
 
   constructor: (options, @ID) ->
-    super options, ID, require 'models/Component'
\ No newline at end of file
+    super options, ID, require 'models/LevelComponent'
\ No newline at end of file
diff --git a/app/views/editor/components/main.coffee b/app/views/editor/components/main.coffee
index 94dda6cbd..87a4ed3b6 100644
--- a/app/views/editor/components/main.coffee
+++ b/app/views/editor/components/main.coffee
@@ -3,13 +3,9 @@ template = require 'templates/editor/components/main'
 
 Level = require 'models/Level'
 LevelComponent = require 'models/LevelComponent'
-CocoCollection = require 'models/CocoCollection'
+ComponentsCollection = require 'collections/ComponentsCollection'
 ComponentConfigView = require './config'
 
-class ComponentsSearchCollection extends CocoCollection
-  url: '/db/level_component/search'
-  model: LevelComponent
-
 module.exports = class ThangComponentEditView extends CocoView
   id: "thang-components-edit-view"
   template: template
@@ -25,7 +21,7 @@ module.exports = class ThangComponentEditView extends CocoView
     for model in [Level, LevelComponent]
       (new model()).on 'schema-loaded', @render unless model.schema?.loaded
     if not @componentCollection
-      @componentCollection = @supermodel.getCollection new ComponentsSearchCollection()
+      @componentCollection = @supermodel.getCollection new ComponentsCollection()
     unless @componentCollection.loaded
       @componentCollection.once 'sync', @onComponentsSync
       @componentCollection.fetch()
diff --git a/app/views/play/level/tome/spell_toolbar_view.coffee b/app/views/play/level/tome/spell_toolbar_view.coffee
index 573689742..16870f85f 100644
--- a/app/views/play/level/tome/spell_toolbar_view.coffee
+++ b/app/views/play/level/tome/spell_toolbar_view.coffee
@@ -26,7 +26,7 @@ module.exports = class SpellToolbarView extends View
     return unless total = @callState?.statementsExecuted
     @statementIndex = Math.min(total - 1, Math.max(0, statementIndex))
     @statementRatio = @statementIndex / (total - 1)
-    @statementTime = @callState.statements[@statementIndex].userInfo.time
+    @statementTime = @callState.statements[@statementIndex]?.userInfo.time ? 0
     @$el.find('.bar').css('width', 100 * @statementRatio + '%')
     Backbone.Mediator.publish 'tome:spell-statement-index-updated', statementIndex: @statementIndex, ace: @ace
     @$el.find('.step-backward').prop('disabled', @statementIndex is 0)
@@ -83,7 +83,7 @@ module.exports = class SpellToolbarView extends View
   setCallState: (callState, statementIndex, @callIndex, @metrics) ->
     return if callState is @callState and statementIndex is @statementIndex
     return unless @callState = callState
-    if not @maintainIndexHover and not @maintainIndexScrub and statementIndex? and callState.statements[statementIndex].userInfo.time isnt @statementTime
+    if not @maintainIndexHover and not @maintainIndexScrub and statementIndex? and callState.statements[statementIndex]?.userInfo.time isnt @statementTime
       @setStatementIndex statementIndex
     else
       @setStatementRatio @statementRatio
diff --git a/app/views/play/level/tome/spell_view.coffee b/app/views/play/level/tome/spell_view.coffee
index 7d319cef4..f648ab9c8 100644
--- a/app/views/play/level/tome/spell_view.coffee
+++ b/app/views/play/level/tome/spell_view.coffee
@@ -370,7 +370,7 @@ module.exports = class SpellView extends View
       #console.log thangID, "got new castAether with raw", aether.raw, "problems", aether.problems
       spellThang.castAether = aether
       spellThang.aether = @spell.createAether e.world.getThangByID(thangID)
-      #console.log thangID, @spell.spellKey, "ran", aether.metrics.callsExecuted, "times over", aether.metrics.statementsExecuted, "statements, with max recursion depth", aether.metrics.maxDepth, "and full flow/metrics", aether.metrics, aether.flow
+      console.log thangID, @spell.spellKey, "ran", aether.metrics.callsExecuted, "times over", aether.metrics.statementsExecuted, "statements, with max recursion depth", aether.metrics.maxDepth, "and full flow/metrics", aether.metrics, aether.flow
     @spell.transpile()
     @updateAether false, false
 
diff --git a/server/models/User.coffee b/server/models/User.coffee
index b557dfccd..043f7330a 100644
--- a/server/models/User.coffee
+++ b/server/models/User.coffee
@@ -45,6 +45,7 @@ UserSchema.statics.updateMailChimp = (doc, callback) ->
   params.email = if existingProps then {leid:existingProps.leid} else {email:doc.get('email')}
   params.merge_vars = { groupings: [ {id: MAILCHIMP_GROUP_ID, groups: newGroups} ] }
   params.update_existing = true
+  params.double_optin = false
   
   onSuccess = (data) ->
     doc.set('mailChimp', data)