non-deterministic added