Add TransverseMercator and refactor a bit