adaptive filtering added