UNO: Need to refactor yet again as there is some un used code in the project. That will be another day.