Factory refactored :)