add join/leave handlers