- refactored as a composer package