using sets to represent memberships now