implements AsyncListener