first refactoring ... stil a wip