structured reducer