private to protect doAssociationAction