reduce functinality