added reduce/imap fusion