change tolerance, add city and state location support!