add join/leave group implementation