Multiple hooks execute secuentially

Changes to handle the hook execution in the order they were defined.