hooks dynamically generated in setup