A seleção da caixa de seleção se repete na exibição de lista

Eu tenho a seguinte implementação de um ListView personalizado preenchido usando um CursorAdapter:

private class CurAdapter extends CursorAdapter{

        public CurAdapter(Context context, Cursor c, int flags) {

            super(context, c, flags);

        }

        @Override
        public void bindView(View view, Context context, Cursor cursor) {

            final ViewHolder holder = (ViewHolder) view.getTag();

            String name = (cursor.getString(cursor.getColumnIndexOrThrow("NotificationDateFor")));
            String image = cursor.getString(cursor.getColumnIndexOrThrow("imageUri"));



            holder.nametext.setText(name);
            setImage(image, holder.iv); 
            holder.chk.setOnClickListener(onchk);


        } 
        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {

            View view = LayoutInflater.from(context).inflate(R.layout.group_list, null);

            ViewHolder holder = new ViewHolder(view);
            view.setTag(holder);
            return view;

        }

        private View.OnClickListener onchk = new View.OnClickListener() {

            @Override
            public void onClick(View v) {


            }
        };


        public class ViewHolder {
            TextView nametext;
            RoundedImageView iv; 
            CheckBox chk; 

            public ViewHolder(View view){

                iv = (RoundedImageView)view.findViewById(R.id.imageView2);
                nametext = (TextView) view.findViewById(R.id.textView1);
                chk = (CheckBox) view.findViewById(R.id.checkBox1);

            }



        }

    }

Estou usando um padrão Holder para evitar repetições, mas as caixas de seleção são selecionadas aleatoriamente enquanto rolar minha lista, o que sinto falta aqui?

Também quero saber como armazenar os valores das caixas de seleção clicadas no meu onClick da caixa de seleção.

questionAnswers(3)

yourAnswerToTheQuestion