https://cursor.com/blog/composer-2-5