add error class
update docs
add hash initialization abstraction
clear out the read method and update tests
update change log