Refactor location provider and introduce gps info widget