implement joining channels