Replaced 'hook' with 'contribution' semantic