added test cases and functionality beyond map, reduce, filter