Pushing the existing solution version. Needs some refactoring.