Save more info in the training data, including rough location and
accuracy.

Also rewrote the apis to make it more intuitive.