only execute hook if it exists (needs test and async!!)