diff --git a/LICENCE b/LICENCE
--- a/LICENCE
+++ b/LICENCE
@@ -1,5 +1,4 @@
-Copyright 2017,2018 Commonwealth Scientific and Industrial Research Organisation
-(CSIRO) ABN 41 687 119 230.
+Copyright 2018 Tony Morris
 
 All rights reserved.
 
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,8 @@
+0.0.3
+
+* tgftp.nws.noaa.gov moved to forcing https, so use wreq library
+* add metar version when given no arguments
+
 0.0.2
 
 * update nix
diff --git a/metar.cabal b/metar.cabal
--- a/metar.cabal
+++ b/metar.cabal
@@ -1,5 +1,5 @@
 name:               metar
-version:            0.0.2
+version:            0.0.3
 license:            BSD3
 license-file:       LICENCE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@sıɹɹoɯʇ>
@@ -29,6 +29,8 @@
 
   build-depends:
                     base >= 4.8 && < 5
+                    , bytestring >= 0.10 && < 0.11
+                    , http-client >= 0.5 && < 0.6
                     , HTTP >= 4000 && < 5000
                     , lens >= 4 && < 5
                     , network-uri >= 2.6 && < 3
@@ -37,8 +39,9 @@
                     , tagsoup >= 0.13 && < 0.15
                     , tagsoup-selection >= 0.1 && < 0.2
                     , transformers >= 0.5 && < 0.6
-                    , deriving-compat
-                    
+                    , deriving-compat >= 0.5 && < 0.6
+                    , wreq >= 0.5 && < 0.6
+
   ghc-options:
                     -Wall
 
diff --git a/src/Data/Aviation/Metar.hs b/src/Data/Aviation/Metar.hs
--- a/src/Data/Aviation/Metar.hs
+++ b/src/Data/Aviation/Metar.hs
@@ -1,4 +1,6 @@
 {-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
 
 module Data.Aviation.Metar(
   getBOMTAF
@@ -10,22 +12,29 @@
 
 import Control.Applicative(pure)
 import Control.Category((.))
-import Control.Lens(view, _Wrapped)
+import Control.Exception(catch)
+import Control.Lens(view, _Wrapped, (&), (.~), (^.))
 import Control.Monad(Monad((>>=)))
 import Data.Aviation.Metar.BOMTAFResult(BOMTAFResponse(BOMTAFResponse), bomMETAR, bomTAF)
 import Data.Aviation.Metar.TAFResult(TAFResult(ConnErrorResult, ParseErrorResult, TAFResultValue))
 import Data.Aviation.Metar.TAFResultT(TAFResultT(TAFResultT))
+import Data.ByteString.Lazy(ByteString)
+import Data.ByteString.Lazy.Char8(unpack)
 import Data.Char(toUpper)
 import Data.Either(Either(Left, Right))
 import Data.Foldable(length)
+import Data.Function(($))
 import Data.Functor(fmap)
 import Data.List(intercalate)
 import Data.Maybe(Maybe(Nothing, Just))
 import Data.String(String, lines)
 import Data.Semigroup((<>))
-import Network.HTTP(Request, Response, setHeaders, setRequestBody, mkRequest, RequestMethod(POST, GET), Header(Header), HeaderName(..), rspBody, simpleHTTP)
-import Network.Stream(ConnError)
+import Network.HTTP(Request, Response, setHeaders, setRequestBody, mkRequest, RequestMethod(POST), Header(Header), HeaderName(..), rspBody, simpleHTTP)
+import Network.HTTP.Client(HttpException)
+import Network.Stream(ConnError(ErrorMisc))
 import Network.URI(URI(URI), URIAuth(URIAuth))
+import Network.Wreq(getWith, defaults, headers, Options, responseBody)
+import qualified Network.Wreq as Wreq(Response)
 import Prelude(show)
 import System.IO(IO, hPutStrLn, putStrLn, stderr)
 import Text.HTML.TagSoup(Tag(TagText))
@@ -101,40 +110,65 @@
         mkTAFResponse . parseTree . rspBody
   in  TAFResultT . fmap (withResult respTAF) . simpleHTTP . request
 
--- http://tgftp.nws.noaa.gov/data/observations/metar/stations/xxxx.TXT
 getNOAAMETAR ::
   String
   -> TAFResultT IO String
 getNOAAMETAR =
-  let request ::
-        String
-        -> Request String
-      request xxxx =
-        setHeaders
-          (
-            mkRequest
-              GET
-              (URI "http" (Just (URIAuth "" "tgftp.nws.noaa.gov" "")) ("data/observations/metar/stations/" <> fmap toUpper xxxx <> ".TXT") "" "")               
-          )
+  let options ::
+        Options
+      options =
+        defaults & headers .~
           [
-            Header HdrHost                        "tgftp.nws.noaa.gov"
-          , Header HdrUserAgent                   "tonymorris/metar"
-          , Header HdrAccept                      "*/*"
-          , Header HdrAcceptLanguage              "en-US,en;q=0.5"
-          , Header HdrAcceptEncoding              "text/html"
-          , Header HdrConnection                  "keep-alive"
-          , Header HdrPragma                      "no-cache"
-          , Header HdrCacheControl                "no-cache"
-          , Header (HdrCustom "DNT")              "1"
+            (
+              "Host"
+            , "tgftp.nws.noaa.gov"
+            )
+          , (
+              "User-Agent"
+            , "tonymorris/metar"
+            )
+          , (
+              "Accept"
+            , "*/*"
+            )
+          , (
+              "Accept-Language"
+            , "en-US,en;q=0.5"
+            )
+          , (
+              "Accept-Encoding"
+            , "text/html"
+            )
+          , (
+              "Connection"
+            , "keep-alive"
+            )
+          , (
+              "Pragma"
+            , "no-cache"
+            )
+          , (
+              "Cache-Control"
+            , "no-cache"
+            )
+          , (
+              "DNT"
+            , "1"
+            )
           ]
+      request xxxx =
+        catch (fmap Right (getWith options ("https://tgftp.nws.noaa.gov/data/observations/metar/stations/" <> fmap toUpper xxxx <> ".TXT")))
+          (\e ->  let e' :: HttpException
+                      e' = e
+                  in pure . Left . ErrorMisc . show $ e')
       respMETAR ::
-        Response String
+        Wreq.Response ByteString
         -> Maybe String
       respMETAR r =
-        case lines (rspBody r) of
+        case lines . unpack $ r ^. responseBody of
           [_, r'] -> Just r'
           _ -> Nothing
-  in TAFResultT . fmap (withResult respMETAR) . simpleHTTP . request
+  in TAFResultT . fmap (withResult respMETAR) . request
 
 getAllMETAR ::
   String
@@ -157,7 +191,8 @@
         hPutStrLn stderr
   in  case x of
         [] ->
-          stderr' "enter an argument (ICAO code)"
+          do  putStrLn ("metar version " <> VERSION_metar)
+              stderr' "enter an argument (ICAO code)"
         (r:_) ->
           let s = view _Wrapped (fmap (intercalate "\n") (getAllMETAR r))
           in  s >>= \s' ->
