use own implementation of heterogeneous lists