[ref] Big refactoring part3 (WIP)