implement filtering UX; support as-you-type/as-you-click filtering