only parse hook args when necessary