Added self propagation as an option