converted from laravel-specific package to general composer package