First pass at client-side filtering