Huge refactoring of solutions and test