use sequences instead of lists