- code refactoring WIP