added forward and backward robustness