ensure delegate responds to selectors before calling them