some improvements for snake type listener