Compatible with composer.json