add hooks and core module