rework filter to only be called once through a . on the query, all handled in the controller