Using Polymorphism to increase program generality