require filters to be a list to preserve order