in order to be OCP, use factory pattern, change animalFactory to interface, any specific animal creator will implements animalFactory