added mapPure method