fixed reduce method