added a randomized version of csp.first()