documentation + hook refactor