Ok, I forgot to include the unit testing.

Here it is.