Move to all objects in the scores for easier testing.

Start to break apart larger functions.

Add lots of tests.