Tidied up join listener