william hafer