Refactored model hydrator to throw more semantic exceptions