complete first two protocol exercises
implement each, filter and map just using reduce for exercise 3
definitely isn't correct but not sure how to do it just yet