added test case, minor cleanup
lifted macros in hash.rs out of inner scope
renaming
commenting, reorg, type renaming
checkpoint