improved solution and project structure