adding trait and listener