ipa blocks are now only called if actually needed