improved location api