implement abort propagation