add reduce and reject