[Feature] prepare refactoring