added block based callback. Add apple docs comments.