implemented joining