reduce overload moved to seperate file transform_reduce, tests written