Added recursive propagation and basic tests to Propagator