implement join event