Just a minor question - do we really want to allow this 'free-form'? It will likely increase the complexity of the initializer, and may impact performance. While this is cool, for a low-level class it's maybe a bit too much flexibility. Why not always use the keyword arguments? (``lat=`` is not too many extra characters).