Replace the internal factory with components