added : heterogeneous list support