john heffernan