Split listeners into their own classes