ideally, this should remain generic across CR