add some instances of Ord where possible, and strictify some fields.
add extra documentation for some fields.
bump version