Revert to a method where we internally track location state.

For #350
Version bump