Adding new DataListener interface and refactoring GUI code.