added reduce and eac