Refactored and cleaned up code.
Refactored data and logic into separate classes and added a score function.