refactor: composer is now a class