Factory refactoring ...