Map, reduce, and filter using strategy pattern and generics.