Adding stats model and tests for model.

This is the reworked stats model as discussed by @rjmajma & @ramirezg. 
Assigning to Eric, since he went over the last one, but @rjmajma, @ramirezg -- please take a good also to confirm that these changes reflect what we discussed.