smart location provider logic, refactor code, +setLocationRefreshDelay()