flatMap, mapViaflatmMap & map2ViaflatMap in terms of flatMap