Removes factory pattern, components now use templates