Modify factories to add functionalities