Added representation invariants for Location and default constructor for
when location is not passed through