worked on action listeners