project structure refactor and test configuration