note that _geometry & _zxy are both optional if the other is provided