support initializing via a Hash
better error handling around merges
Merge pull request #29 from TwP/initialize-by-hash

Initialize by hash