all CR tests pass after some refactoring