         @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] ?= {}


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

  createAether: (methodName, method) ->

  generateSpellKeyToSourceMapPropertiesFromThang: (thang) =>
    for component in thang.components
      continue unless @componentHasProgrammableMethods component
      for methodName, method of component.config.programmableMethods
        spellKey = @generateSpellKeyFromThangIDAndMethodName thang.id, methodName

