listeners and edits