         @transpileSpell thang, spellKey, methodName
 
   generateSpellKeyFromThangIDAndMethodName: (thang, methodName) ->
-    spellKeyComponents = [thang.id, methodName]
+    spellKeyComponents = [thang, methodName]
     spellKeyComponents[0] = _.string.slugify spellKeyComponents[0]
-    spellKeyComponents.join '/'
+    spellKey = spellKeyComponents.join '/'
+    spellKey
+    
 
   createSpellAndAssignName: (spellKey, spellName) ->
     @spells[spellKey] ?= {}


  generateSpellKeyToSourceMap: ->
    spellKeyToSourceMap = {}

    for session in @rawData.sessions
      teamSpells = session.teamSpells[session.team]
      _.merge spellKeyToSourceMap, _.pick(session.code, teamSpells)

      commonSpells = session.teamSpells["common"]
      _.merge spellKeyToSourceMap, _.pick(session.code, commonSpells) if commonSpells?

    spellKeyToSourceMap


  transpileSpell: (thang, spellKey, methodName) ->
    slugifiedThangID = _.string.slugify thang.id
    source = @currentUserCodeMap[[slugifiedThangID,methodName].join '/'] ? ""
    @spells[spellKey].thangs[thang.id].aether.transpile source

  createAether: (methodName, method) ->
