update hooks with before/after, as well as more manageability