Splitted the listener into 3 specifics listeners