Refresh without re-getting location

- Did some much needed refactoring
- Improvements on blocking