refactoring for etc integration