Use `reducer` to replace `prepare`