implemented map2 using flatMap