Builder Accepts Hash

Refactored builder to accept hash - Please Merge
how about a shared example that supports

```ruby
it_behaves_like 'it can reconstruct itself' 
```
or something. Here and for the the others below as well.