added flatMap, map, and map2 to State