refactor to use a partial
allow filtering based on checkboxes