MultiMethods or Multiple dispatch excercise