You do seem to be doing it wrong. Extensive manipulation of the record and slow hooks are both undesirable.