update listeners to use source interface