return iterable instead of list
merge from master