further improvement on lists