business logic for filter and update