Added abstract reducer class