block-based instead of delegate call-backs.