Experimental multiple dispatch implementation
