add listen method