downward pass added