new hook system + a test