[fix] listen before constructing