refactored statistics into small classes, got quite messy and unclear