refine delegate protocol.