more complete hook analysis