more pre/post hook refactoring (changed 'update')

Also more generalizations and improvements