add visibility and membership settings to groups, group invitations and join requests, and a general Request model for all types of actions that involve combining permissions from 2 users (a requester to initiate, and a requestee to accept or reject the request)