refactoring, changing archetecture