introduced composer + refactoring