         args = (attributes.args ? '').split()
         script = htmlDecode(child.innerHTML)
         type = attributes.type or defaulttype
-        classattributes.$methods[attributes.name] = [script, args, type]
+        classattributes.$methods[attributes.name] = [transformScript(script, type), args]
         # console.log 'added method', attributes.name, script, classattributes
       else if childname == 'setter'
         args = (attributes.args ? '').split()
         script = htmlDecode(child.innerHTML)
         type = attributes.type or defaulttype
-        classattributes.$methods['set_' + attributes.name] = [script, args, type]
+        classattributes.$methods['set_' + attributes.name] = [transformScript(script, type), args]
         # console.log 'added setter', 'set_' + attributes.name, args, classattributes.$methods
       else if childname == 'attribute'
         classattributes[attributes.name] = attributes.value

      for {name, script, args, type} in attributes.$handlers?
        name = name.substr(2)
        # console.log 'installing handler', name, args, type, script, @
        @bind(name, eventCallback(name, script, @, args, type))
      delete attributes.$handlers

      # Bind to event expressions and set attributes

      # console.log coffeeCache
      # return coffeeCache[script]

  transformScript = (script='', compiler) ->
    return script unless compiler of compilermappings
    script = compilermappings[compiler](script) 

  compileScript = (script='', args=[]) ->
    # console.log 'compileScript', compiler, args, script
    try 
      new Function(args, script)
