many fixes, make all filter takes async
convert for loops to be async