try to minimize CAS ops