Add reduce
Add protocol implementations