Introduced InputComponentFactory to allow dynamic creation of InputComponents without injection