           type     : "text/javascript"
           src      : url
         bind       = "load"
-        load       = -> callback null
-
+        load       = -> callback? null
+
+      @destroyScriptElement type, identifier  if force
 
       document.head.appendChild (new KDCustomHTMLView {
         domId, tagName, attributes, bind, load
       }).getElement()
+
+  @destroyScriptElement = (type, identifier)->
+    (document.getElementById "internal-#{type}-#{identifier}")?.remove()
 
   # #
   # MAKE NEW APP

    if vmName

      file = FSHelper.createFileFromPath url
      file.fetchContents (err, partial)->
        return  if err
        obj = new KDCustomHTMLView {domId, tagName, partial}

        if type is 'script'
          obj.once 'viewAppended', -> callback null

  # Please make sure about your changes on it.
  @putAppScript = (app, callback = noop)->

    if app.style
      @appendScriptElement 'style',  \
        { url:app.style, identifier:app.identifier, callback }, yes

    if app.script
      @appendScriptElement 'script', \
        { url:app.script, identifier:app.identifier, callback }, yes

  @unloadAppScript = (app, callback = noop)->

    identifier = app.identifier.replace /\./g, '_'

    @destroyScriptElement "style", identifier
    @destroyScriptElement "script", identifier

    KD.utils.defer -> callback()

