Add a hook system  + some amenagement