test, refactoring, WIP