Make forward public so it can be called from other places
Create preparer and propagater nodes

These nodes are supplied functors that that are called on prepare and progapate respectivily, and otherwhise just forwards elements