Builder Accepts Hash

Refactored builder to accept hash - Please Merge