refactor .reject/fail handling; updated tests;