Always use respondsToSelector: to check if delegate methods are available