refactor using composer