Factory refactored D: