added listen method