explanation added for different hooks