composer hook