added listeners and works