move action hooks to separate methods