support for list and set