More summary values, refactoring, seems stable now.

Biggest change was switching from uint32 to uint16. The values
were accurate before, but using the wrong size. This is fixed.

Added comments & notes.

Added weight calculation. Not sure it's usable.