don't use the deepcopy as it less efficient that using the factory