Add a bunch of utility functions.
Add scoring code
Added a bunch of documentation