correct the interface of delegate