implemented filter&search feature, but need to be refacotorred