refactored listener classes , added interfaces, fixed change bug