finished ex1
finished ex3 map fn