[WIP] refactoring
[WIP] refactoring