add hooks to service layer