add mapGroup to the typed API

@avibryant comments/review?

did some simplifying here on ReduceStep. Will continue the cleanup in the next PR.