worked on adding listeners