solution listener