refactoring, component tructure