huge speedup by using gnerator expression