Passing around ReuceContext objects instead of the individual components