Reimplemented the 'reduce' operator
Updated the unit tests and removed synchronized