I've addressed your comments in the attached patch. I based it off the most recent patch in the thread. The main difference is that the hook properties accept a single nullary function or list of nullary functions.