           ex.push "          | _ -> this._#{name}ComponentPool.Pop()"
           for p in properties
             ex.push "        c.#{p.split(':')[0]} <- #{p.split(':')[0]};"
-          ex.push "        this.AddComponent(int ComponentId.#{Name}, c)"
+          ex.push "        this.AddComponent(Component.#{Name}, c)"
           ex.push ""
           ex.push "    member this.Replace#{Name}(#{params(properties)}) ="
           ex.push "        let previousComponent = if this.has#{Name} then this.#{name} else null"

    ###
    for Name, interfaces of config.systems
      name = Name[0].toLowerCase()+Name[1...]
      sb.push ""
      sb.push "type #{Name}(world) ="
      
      found = false
      for iface in interfaces

        if 'IExecuteSystem' is iface
          sb.push "    interface IExecuteSystem with"
          sb.push "        member this.Execute() ="
          sb.push "            ()"
          found = true
          
        if 'IInitializeSystem' is iface
          sb.push "    interface IInitializeSystem with"
          sb.push "        member this.Initialize() ="
          sb.push "            ()"
          found = true

      sb.push "    class end" unless found 
    sb.push ""
               
    ###
     * Entity Extensions


    sb = []
    ex = []
    sys = {}
    
    sb.push "namespace #{config.namespace}"
    sb.push ""
    sb.push "(**"
    sb.push " * Entitas Generated Components for #{config.namespace}"
    sb.push " *"
    sb.push " * do not edit this file"
    sb.push " *)"
    sb.push ""
    sb.push "open Entitas"
    sb.push "open System"
    sb.push "open System.Collections.Generic"
    
    ex.push "module #{config.namespace}Extensions"
    ex.push ""
    ex.push "(**"
    ex.push " * Entitas Generated Extensions for #{config.namespace}"
    ex.push " *"
    ex.push " * do not edit this file"
    ex.push " *)"
    ex.push ""
    ex.push "open Entitas"
    ex.push "open #{config.namespace}"
    ex.push "open System"
    ex.push "open System.Collections.Generic"

    ###
     * Components Type Definitions
