did some refactoring and re structuring of the solution