add ApplicationComponentFactory