add 'map' 'reduce' 'filter' functions