add empty filter, allow switching to a filter with options, add js versions