better cracker function