Locations must now be valid. Invalid locations throw an exception instead of being silently ignored.