wip refactoring
wip refactoring