[ref] Big refactoring part5 (WIP)