UI changes and listener refactoring.