added map, fold, filter functions